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代码首先插入多行的主要内容,如果未能解决你的问题,请参考以下文章

在 ms-access 表中插入多行的 SQL 代码

Apache Spark 在 DataFrame 中插入多行

MS Access 插入多行

MYSQL意外插入多行

在gridview中插入多行

vim编辑器-多行加注释与去注释