使用实体框架6批量插入

时间:2017-07-28 20:17:39

标签: entity-framework-6

我知道有一些商业图书馆,并且AddRange,但AFAIK AddRange在底层进行了零碎的INSERT。

我正在寻找一个可用于同时添加新实体集合的免费实用程序 - EF6是否存在?

2 个答案:

答案 0 :(得分:2)

您可以使用以下库:

https://github.com/MikaelEliasson/EntityFramework.Utilities

适用于简单的批量插入和更新。

如果您想了解实现批量插入的其他选项,您还应该查看以下帖子:

Fastest Way of Inserting in Entity Framework

答案 1 :(得分:0)

我建议您看看N.EntityFramework.Extension。它是EF 6的基本批量扩展框架,可在Nuget上获得,源代码在MIT许可下可在Github上获得。

Install-Package N.EntityFramework.Extensions

https://www.nuget.org/packages/N.EntityFramework.Extensions

安装后,您可以直接在DbContext实例上直接使用BulkInsert()方法。它支持BulkDelete,BulkInsert,BulkMerge等。

BulkDelete()

var dbcontext = new MyDbContext();  
var orders = dbcontext.Orders.Where(o => o.TotalPrice < 5.35M);  
dbcontext.BulkDelete(orders);

BulkInsert()

var dbcontext = new MyDbContext();  
var orders = new List<Order>();  
for(int i=0; i<10000; i++)  
{  
   orders.Add(new Order { OrderDate = DateTime.UtcNow, TotalPrice = 2.99 });  
}  
dbcontext.BulkInsert(orders);