首页 > 解决方案 > C# EF 不使用 ForEach 保存多条记录

问题描述

美好的一天,伙计们,

我正在尝试保存多条记录。

我已经完成了我的研究,但它们都没有真正对我有用。

这是我的代码:

var dataToUpdate = context.Employees.ToList(); 

using(var db = context){
   var department= "IT";

   dataToUpdate.ForEach(x=>{
       x.department = department;
   });

   db.SaveChanges()
}

来源:EF - 在不使用 foreach 循环的情况下更新数据库中的多行,但它不起作用。

我试图放置断点并尝试捕捉,我的断点db.SaveChanges没有错误。但是当我检查数据库中的数据时,没有发生任何变化。

标签: entity-framework

解决方案


看着!您正在从两个不同的上下文中提取和更新数据。实际上它应该来自以下相同的上下文:

using(var db = context)
{
  var dataToUpdate = db.Employees.ToList();

   var department= "IT";

   dataToUpdate.ForEach(x=>{
       x.department = department;
   });

   db.SaveChanges();
}

现在它应该可以工作了。


推荐阅读