2011-02-23 117 views
5

我先使用EF代码,并且需要将多行插入表中,几千条记录,我在通用列表中。只要做一个foreach循环,并将每个实体添加到表格中,并使用SaveChanges()完成后需要很长时间。首先插入多行的EF代码

是否有一个庞大的方式与EF或代码首先做到这一点,或者我应该做的SqlCommand或SqlBulkCopy呢?另外,有什么我可以首先在EF代码中关闭以使插入更快?

感谢您的帮助!

+0

我希望我可以得到一些关于如何使用EF代码插入行更快的技巧,但我想这是不可行的。 – 2011-02-28 18:42:14

回答

1

您可以不经常拨打SaveChanges()

然而,没有什么可以用EF做的事情会处理类似SqlBulkCopy的性能。

+0

+1 ORM永远不会是批量操作的高性能解决方案。 – 2011-02-23 17:07:59

+0

只要做dbContext.Entityname.Add()4000次需要20-30秒。循环后的SaveChanges()超过10秒。可能会用于SqlBulkCopy ... – 2011-02-24 00:00:38