我们的医疗保健应用程序遵循(AngularjS + MVC + WebAPI)3层架构。我在导入屏幕上上传Excel表格进行列映射。之后,我为excel表中的每个记录执行所有验证。之后所有这些50K行作为Web-API层的实体。这里我将一个rec插入到父表中以获取主键。获得它后循环通过50k实体来更新它在集合中。然后我使用addRange将所有这些值更新到数据库中。这是我们在应用程序中使用的一段代码。
db.tableA.Add(Entity1);
db.SaveChanges();
(Primary Key) fileId = int.Parse(Entity1.Id.ToString());
//DataList having 50K Entities
foreach (tableB coll in DataList)
{
coll.fileID = fileId;
}
db.tableB.AddRange(DataList);
db.SaveChanges();
参见下面的链接。 Bulk insert in entity framework
How to use Bulk Insert in Entity Framework using Object Context?
Bulk insert in entity framework
但我无法使用EntityFramework.BulkInsert,因为它与最新的EF版本(6.1)不兼容。有没有其他可行的方法使用EF使用批量插入?我们也可以在Entity Framework中使用SqlBulkCopy吗?`
答案 0 :(得分:1)
以下是使用其他第三方库(与Entity Framework 6.1兼容)的替代解决方案
免责声明:我是该项目的所有者Entity Framework Extensions
此库与所有Entity Framework Version 6.X
兼容通过允许您的应用程序可能需要执行所有批量操作,它不仅仅是批量插入:
实施例
// Easy to use
context.BulkSaveChanges();
// Easy to customize
context.BulkSaveChanges(bulk => bulk.BatchSize = 100);
该库支持所有类型的继承和关联,但是库不是免费的。