EF代码优先插入多行

5
我正在使用EF Code First,需要将一个包含几千条记录的通用列表插入到表格中。只是使用foreach循环并将每个实体添加到表格中,最后使用SaveChanges()保存,这需要相当长的时间。
在EF或Code First中是否有一种批量操作的方法?还是应该使用SqlCommand或SqlBulkCopy?此外,是否有一些我可以关闭的EF Code First功能,以使插入更快?
感谢您的帮助!

我希望能够获得一些有关如何加快使用EF Code First插入行的技巧,但我猜这是不可行的。 - Johan Danforth
1个回答

1

您可以尽可能少地调用SaveChanges()方法。

然而,使用EF所能达到的性能水平都无法与SqlBulkCopy等工具相媲美。


+1 ORM从来不是大规模操作的高效解决方案,将来也不会成为。 - Jesse C. Slicer
仅仅执行dbContext.Entityname.Add() 4000次就需要20-30秒。循环后的SaveChanges()需要超过10秒。可能会考虑使用SqlBulkCopy... - Johan Danforth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接