c# - 在 foreach 循环内外调用 SaveChanges() 有什么区别?

标签 c# entity-framework

假设在循环内对 EF 实体进行了更改,在 foreach 循环或循环外调用 EF SaveChanges() 之间是否存在任何性能优势/技术差异?

最佳答案

是的!

如果您在循环内调用它,EF 将为每个实体 将更改写回数据库(并且每个实体都将在其自己的单独事务中)。

反过来,您将进行所有更改,EF 将在循环后一次将它们写回(所有实体一起在一个事务中)。

作为一般经验法则(无需实际查看您的代码)尝试尽可能少地调用.SaveChanges()

一次调用 50 次更改通常比 50 次调用每次 1 次更改更好/更快/更有效。

关于c# - 在 foreach 循环内外调用 SaveChanges() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11134232/

相关文章:

c# - ApplicationInsights TelemetryClient 在调试时初始化很慢

c# - 如何复制/克隆数据表

asp.net-mvc - Code First 中的一对多关系

linq - 当从 linq 查询创建 IQueryable 时,为什么它不是 "new"变量?

c# - 在 Entity Framework Code First 中忽略基类型是否也会忽略子类?

c# - Firebase 实时数据库 : how can I retrieve 10 records around a specific key after ordered by value?

C# 数组矩阵

asp.net - EntityFramework连接问题

c# - 尝试删除"Adding a relationship with an entity which is in the Deleted state is not allowed"set in optional relationship时出现"many"

c# - 使用同一个命令运行多个任务?