如何在c#和SQL Server中使用实体框架核心更新大量数据



我想在c#中使用实体框架核心更新大量数据(大约200万条记录)。. NET 6),但是我有性能问题。

我试过了:

var data = await _context.Set<MyObject>()
.Where(x => x.field != string.Empty)
.ToListAsync();  
data.ForEach(x => x.field = _myService.GetNewValue(x.field))
_context.Set<MyObject>().UpdateRange(data);
_context.SaveChanges();

如何提高性能?

谢谢!

  • 更新EF Core 7
  • 设置较高的命令超时时间
  • 使用新的ExecuteUpdate方法

或者直接使用SQL语句或存储过程,您可以使用EF Core

中的ExecuteSqlCommand方法调用它。

最新更新