EF代码首先插入多行
Posted
技术标签:
【中文标题】EF代码首先插入多行【英文标题】:EF code first inserting many rows 【发布时间】:2011-02-23 13:52:26 【问题描述】:我首先使用 EF 代码,我需要在一个表中插入很多行,几千条记录,我在一个通用列表中。只需执行一个 foreach 循环并将每个实体添加到表中并使用 SaveChanges() 完成就需要相当长的时间。
是否有一种笨重的方法可以先使用 EF 或代码执行此操作,还是我应该使用 SqlCommand 或 SqlBulkCopy 来代替?另外,我可以先在 EF 代码中关闭某些东西以加快插入速度吗?
感谢您的帮助!
【问题讨论】:
我希望我能获得更多关于如何更快地首先使用 EF 代码插入行的提示,但我想这是不可行的。 【参考方案1】:您可以减少拨打SaveChanges()
的次数。
但是,您对 EF 所做的任何事情都无法达到 SqlBulkCopy 之类的性能。
【讨论】:
+1 ORM 从来没有也永远不会成为批量操作的高性能解决方案。 只执行 dbContext.Entityname.Add() 4000 次需要 20-30 秒。循环后的 SaveChanges() 需要 10 秒以上。可能会使用 SqlBulkCopy...以上是关于EF代码首先插入多行的主要内容,如果未能解决你的问题,请参考以下文章