这个问题已经在这里有了答案 :
如何在Entity Framework中删除多行(无foreach) (22个答案)
7年前关闭。
我在sql中有tblA:
id int (primary key) fid int
tblA中的数据是:
1 1 2 1 3 2 4 2 5 3 6 3
我通过以下代码删除 一条记录 :
DatabaseEntities obj = new DatabaseEntities(); int i = 2; tblA t = obj.tblA.Where(x => x.fid == i).FirstOrDefault(); obj.DeleteObject(t); obj.SaveChanges();
我通过以下代码删除多条记录:
DatabaseEntities obj = new DatabaseEntities(); int i = 2; while (obj.tblA.Where(x => x.fid == i).Count() != 0) { tblA t = obj.tblA.Where(x => x.fid == i).FirstOrDefault(); obj.DeleteObject(t); obj.SaveChanges(); }
有什么解决方案可以删除linq中的 多个记录 到实体吗?
您可以执行以下操作,从技术上讲,这仍然是一个循环。
obj.tblA.Where(x => x.fid == i).ToList().ForEach(obj.tblA.DeleteObject); obj.SaveChanges();
替代方法是直接调用SQL。