我的用户表中包含 +100000 用户。
如果我想在EF
的另一个表中为每个用户创建一行,那么最好的方法是什么?
我猜测在C#
中循环所有用户并创建 100000 我的表格行项目的实例可能是我感到遗憾的。
我应该创建一个stored procedure
吗?解决这个问题的最佳方法是什么?
答案 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]