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