如何使用实体框架对与外键相关的多表进行批量插入

时间:2017-11-18 11:35:47

标签: c# mysql entity-framework

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

1 个答案:

答案 0 :(得分:0)

BulkSaveChanges未提供SaveChanges功能。

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

免责声明:我是Entity Framework Extensions

的所有者

此库不是免费的,但允许您执行// 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; }); ,其工作方式与{{1}}类似,但更快:

  • 批量保存更改
  • 批量插入
  • 批量删除
  • 批量更新
  • 批量合并

实施例

{{1}}