如何使用对象上下文在实体框架中使用批量插入?
Posted
技术标签:
【中文标题】如何使用对象上下文在实体框架中使用批量插入?【英文标题】:How to use Bulk Insert in Entity Framework using Object Context? 【发布时间】:2015-03-14 12:01:20 【问题描述】:我想在 Entity Framework 6 中使用 Object Context 而不是 DbContext 来调用 Bulk Insert。我该怎么做?
我想做类似的事情
只读ObjectContext obContext:
public void BulkInsert<T>(IEnumerable<T> items) where T : class, new()
obContext.BulkInsert(items);
但我无法做到这一点。
【问题讨论】:
【参考方案1】:使用实体框架 6,您可以使用这个漂亮的 nuget 包进行批量插入,并且可以将它与 DbContext 对象一起使用。
所以是这样的:
using (var db = new YourDbContext())
EFBatchOperation.For(db, db.BlogPosts).InsertAll(list);
https://github.com/MikaelEliasson/EntityFramework.Utilities
希望这会有所帮助。
【讨论】:
但问题是关于 ObjectContext,不是吗? 不适用于问题中要求的 ObjectContext。【参考方案2】:使用 EntityFrame 6,您确实可以插入一系列元素。
例如,我添加一个模型 Customer
public class Customer
public int Id get; set;
public string CustomerName get;set;
public string City get;set;
如果我从模型列表(列表)之类的视图中发送客户列表,我可以保存如下数据范围:
public ActionResult AddCustomerData(List<Customer> cust)
try
using(var db = new DBContext)
db.customer.AddRange(cust);
db.SaveChanges();
catch(exception ex)
像这样,您可以将批量/范围的数据添加到数据库中,并且在添加之前,您还可以根据需要修改数据。谢谢。
【讨论】:
以上是关于如何使用对象上下文在实体框架中使用批量插入?的主要内容,如果未能解决你的问题,请参考以下文章