如何用C#中的实体框架核心更新SQL Server中的大量数据

7kqas0il  于 2022-12-28  发布在  C#
关注(0)|答案(1)|浏览(139)

我想用C#(. NET 6)中的Entity Framework Core更新大量数据(大约200万条记录),但我遇到了性能问题。
我试过这个:

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();

如何提高性能?
谢谢!

nfeuvbwi

nfeuvbwi1#

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

或者只使用SQL语句或存储过程,都可以使用EF Core中的ExecuteSqlCommand方法调用它

相关问题