我想在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
方法调用它。