我發現這篇文章對批量插入有幫助Fastest Way of Inserting in Entity Framework,但是,我想知道是否有更有效的方式插入帶有子實體的記錄。插入許多父母和孩子記錄的最快方法
我的實體是這樣的:
我一直在嘗試與BulkInsert,它似乎提高性能一點,但它仍然是大約60秒,約40條記錄每一個具有多個子實體。我有些情況下需要插入數千條記錄,並且速度非常慢。我的代碼如下:
using (var transactionScope = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 15, 0)))
{
using (var db = new MyDBContext())
{
db.Configuration.AutoDetectChangesEnabled = false;
var entities = db.ScenarioCategory.AddRange(categories);
db.BulkInsert(entities);
db.SaveChanges();
}
transactionScope.Complete();
}
你爲什麼要調用'AddRange'和'BulkInsert'?您應該選擇其中一個,因爲它們都執行相同的操作。 – shlatchz
@SteveGreene從BulkInsert:「要將批量插入與DbContext結合,必須使用TransactionScope。」 – tqrecords