使用实体框架 6 进行批量插入

SB2*_*055 6 entity-framework-6

我知道有一些商业图书馆,AddRange但据我所知AddRange在幕后

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

小智 6

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

Install-Package N.EntityFramework.Extensions
Run Code Online (Sandbox Code Playgroud)

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

安装后,您可以直接在 DbContext 实例上使用 BulkInsert() 方法。它支持批量删除、批量插入、批量合并等。

批量删除()

var dbcontext = new MyDbContext();  
var orders = dbcontext.Orders.Where(o => o.TotalPrice < 5.35M);  
dbcontext.BulkDelete(orders);
Run Code Online (Sandbox Code Playgroud)

批量插入()

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);  
Run Code Online (Sandbox Code Playgroud)


Avi*_* K. 4

您可以使用以下库:

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

它非常适合简单的批量插入和更新。

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

插入实体框架的最快方法