【问题标题】: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);
}

但我无法做到这一点。

【问题讨论】:

    标签: c# asp.net-mvc entity-framework linq-to-entities entity-framework-6


    【解决方案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)
      {
      }
    }
    

    像这样,您可以将批量/范围的数据添加到数据库中,并且在添加之前,您还可以根据需要修改数据。谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多