LINQ删除记录实战解析
创始人
2024-06-06 23:00:58
0

在进行LINQ删除记录的时候肯定会遇到这样或那样的问题,那么针对这些可能遇到的问题,我们是如何处理呢?下面就向你介绍一个在LINQ删除记录的过程中遇到的问题,希望对你有所启发。

LINQ删除记录问题的出现

  1. public void DeleteAlbum(int albumid)  
  2.  
  3. {  
  4.  
  5. var albumlog = (from p in xt.AlbumInfo  
  6.  
  7. where p.Album_id == albumid  
  8.  
  9. select p).Single();  
  10.  
  11. var picslog = from q in xt.PictureInfo  
  12. where q.AlbumInfo.Album_id == albumid  
  13. select q;  
  14.  
  15. foreach (PictureInfo log in picslog)  
  16.  
  17. {  
  18.  
  19. xt.PictureInfo.DeleteOnSubmit(log);  
  20.  
  21. }  
  22. xt.AlbumInfo.DeleteOnSubmit(albumlog);  
  23.  
  24. xt.SubmitChanges();  
  25.  
  26. }  

我的目的是要删除ID为albumid的相册以及里面的所有照片,但是却出现了“在更改集中检测到了循环”这个错误。

LINQ删除记录问题的解决方案:

可以使用Linq的DeleteAllOnSubmit语句,不需要循环。把foreach语句替换为xt.PictureInfo.DeleteAllOnSubmit(picslog);

另:***条语句应该用.SingleOrDefault()查询并对判断有没有查询结果picslog就可以用 var picslog = xt.PictureInfo.where(q.AlbumInfo == albumlog);

还有,如果我们已经知道变量的类型了为什么还要用匿名类型呢?让编译器再去做这些工作有点浪费吧。

LINQ删除记录的操作相关的内容就向你介绍到这里,希望对你了解和学习LINQ删除记录有所帮助。

【编辑推荐】

  1. C# Lambda Expression概念浅析
  2. 详解C# Lambda表达式的动态生成
  3. C# Lambda Expression使用实例解析
  4. 浅谈LINQ删除XML节点
  5. 学习LINQ基本操作的一点体会

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...