Linq 是否有更好的方法来制定实体框架4更新?

Linq 是否有更好的方法来制定实体框架4更新?,linq,entity-framework,Linq,Entity Framework,我有以下代码: List<Item> csItems = (from i in context.Items where i.CSItem == true select i).ToList<Item>(); csItems.ForEach(i => i.Active = false); context.SaveChanges(); List csItems=(来自context.

我有以下代码:

List<Item> csItems = (from i in context.Items
                      where i.CSItem == true
                      select i).ToList<Item>();
csItems.ForEach(i => i.Active = false);
context.SaveChanges();
List csItems=(来自context.Items中的i
其中i.CSItem==true
选择i.ToList();
csItems.ForEach(i=>i.Active=false);
SaveChanges();

这似乎是非常低效的,因为我必须先读取整个表,然后更新表。有没有更好的方法来做到这一点,使我只做一个更新而不阅读所有内容?

Linq2EF没有内置的批量更新,但您可以使用,要自己做,实际上您应该自己实现它。另一个简单的方法是使用存储过程。但是如果你想自己拥有它,你可以阅读所有4篇文章系列,它们都很容易阅读。

没有必要建立项目的
列表。一、 就个人而言,我只是列举结果并设置值:

IQueryable<Item> csItems = (from i in context.Items
                  where i.CSItem == true
                  select i);
foreach(var item in csItems)
     item.Active = false;

context.SaveChanges();
IQueryable csItems=(来自context.Items中的i
其中i.CSItem==true
选择i);
foreach(csItems中的var项)
item.Active=false;
SaveChanges();
请注意,EntityFramework中没有内置的批量更新功能,因此需要执行更高效的操作