我运行的每次运行都会有1000个logging。 只是在我的假设上寻找一些确认: 哪一个最有意义: 运行SaveChanges()每个AddToClassName()调用。 每n次AddToClassName()调用运行SaveChanges() 。 在所有的AddToClassName()调用之后运行SaveChanges() 。 第一个选项可能是慢的吧? 由于需要分析内存中的EF对象,生成SQL等 我假设第二个选项是两个世界中最好的,因为我们可以围绕SaveChanges()调用进行try catch,并且一次只丢失n个logging,如果其中一个失败的话。 也许将每个批次存储在List <>中。 如果SaveChanges()调用成功,则删除列表。 如果失败,请logging项目。 最后一个选项可能最终会很慢,因为每个EF对象都必须在内存中,直到调用SaveChanges() 。 如果保存失败,什么都不会发生,对吧?