我正在运行一个导入,每次运行将有1000条记录。只是想确认一下我的假设:
以下哪一个最合理:
AddToClassName()
呼叫都运行 SaveChanges()
。SaveChanges()
每个 AddToClassName()
调用的 N号码。AddToClassName()
调用的 所有之后运行 SaveChanges()
。第一个选项可能比较慢,对吧?因为它需要分析内存中的 EF 对象,生成 SQL 等等。
我假设第二个选项是两个世界中最好的,因为我们可以在 SaveChanges()
调用周围包装一个 try catch,并且一次只丢失 N数量的记录,如果其中一个失败的话。也许将每批产品存储在 List < > 中。如果 SaveChanges()
调用成功,则删除列表。如果失败,记录项目。
最后一个选项可能也会非常慢,因为每个 EF 对象都必须在内存中,直到调用 SaveChanges()
。如果保存失败,就不会提交任何内容,对吗?