使用EF在表中插入大量数据

时间:2015-06-11 16:40:16

标签: c# sql-server entity-framework tsql

我的用户表中包含 +100000 用户。 如果我想在EF的另一个表中为每个用户创建一行,那么最好的方法是什么?

我猜测在C#中循环所有用户并创建 100000 我的表格行项目的实例可能是我感到遗憾的。

我应该创建一个stored procedure吗?解决这个问题的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

实体框架有一个批量数据插入扩展,下载和查看文档: https://efbulkinsert.codeplex.com/

使用NuGet添加它:

EF4

PM> Install-Package EntityFramework.BulkInsert-ef4 https://www.nuget.org/packages/EntityFramework.BulkInsert-ef4

EF5

PM> Install-Package EntityFramework.BulkInsert-ef5 https://www.nuget.org/packages/EntityFramework.BulkInsert-ef5

EF6

PM> Install-Package EntityFramework.BulkInsert-ef6 https://www.nuget.org/packages/EntityFramework.BulkInsert-ef6

答案 1 :(得分:0)

我继续使用Giorgi的解决方案。一个非常简单的SP,在两秒内插入102400行。

INSERT INTO MyTable (col1 col2, UserID)
SELECT @Param1, @Param2, [ID] FROM [User]