2017-11-18 87 views
0

我必须对多个表(大约30个表)执行批量插入(大约50-100行),其中一些表与其中一些表是相互关联的外键。 我想通过使用实体框架(EF)来做到这一点。 但我想这发生与最小数据库命中,而不是调用每个表的context.SaveChanges()。 EF有什么方法可以执行此操作吗?如果是这样,请让我知道。 在此先感谢!如何使用实体框架执行批量插入到与外键相关的多个表中

+0

https://stackoverflow.com/questions/5940225/fastest-way-of-inserting-in-entity-framework –

+0

不可能在没有看到代码中的实际情况下回答这个问题。 –

+0

这里有一个样本案例.. –

回答

0

Entity Framework不提供Bulk功能。

对于想要保存的每一行,都需要数据库往返。


免责声明:我的Entity Framework Extensions

该库是不是免费的主人,但可以让你执行BulkSaveChanges这工作就像SaveChanges但速度更快:

  • 散装的SaveChanges
  • 批量插入
  • 批量删除
  • 批量更新
  • 批量合并

// Easy to use 
context.BulkSaveChanges(); 

// Easy to customize 
context.BulkSaveChanges(bulk => bulk.BatchSize = 100); 

// Perform Bulk Operations 
context.BulkDelete(customers); 
context.BulkInsert(customers); 
context.BulkUpdate(customers); 

// Customize Bulk Operations 
context.BulkInsert(customers, options => { 
    options => options.IncludeGraph = true; 
}); 
context.BulkMerge(customers, options => { 
    options.ColumnPrimaryKeyExpression = 
     customer => customer.Code; 
}); 
相关问题