从 EF 上下文批量插入时,有没有办法包含单个子 table?

Is there a way to include a single child table when Bulk Insert'ing from EF context?

我们有一个巨大的 EF 上下文模型。我只想从一个父 table 及其子 table 批量插入数据。 BulkSaveChanges 花费的时间太长,我正在玩 BulkInsert,但是当我设置 options.IncludeGraph = true 时,它花费的时间甚至更长。有没有办法阻止 Dapper 搜索所有相关对象并仅插入来自父 table 和子的数据?

你能调用两次批量插入吗?一份给 parents,一份给他们的 child

context.BulkInsert(parents);
context.BulkInsert(parents.SelectMany(x => x.Childs));

After parents have been inserted, the childs still have ParentId = 0

我们希望尽快改进这部分,但此时您需要将 ParentId 分配给您的 child。

例如:

context.BulkInsert(parents);
parents.ForEach(x => x.Childs.ForEach(y => y.ParentID = x.ID));
context.BulkInsert(parents.SelectMany(x => x.Childs));