假设在循环内对 EF 实体进行了更改,在 foreach 循环或循环外调用 EF SaveChanges() 之间是否存在任何性能优势/技术差异?
最佳答案
是的!
如果您在循环内调用它,EF 将为每个实体 将更改写回数据库(并且每个实体都将在其自己的单独事务中)。
反过来,您将进行所有更改,EF 将在循环后一次将它们写回(所有实体一起在一个事务中)。
作为一般经验法则(无需实际查看您的代码)尝试尽可能少地调用.SaveChanges()
。
一次调用 50 次更改通常比 50 次调用每次 1 次更改更好/更快/更有效。
关于c# - 在 foreach 循环内外调用 SaveChanges() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11134232/