Ich habe diesen Artikel hilfreich Batch-Einsätze Fastest Way of Inserting in Entity Framework, aber ich frage mich, ob es eine effizientere Möglichkeit zum Einfügen von Datensätzen mit Kind-Entitäten sowie.Schnellste Art der Eingabe viele Eltern und Kind Datensätze
Meine Einheiten sind wie folgt aus:
Ich habe mit BulkInsert experimentiert und es scheint, Leistung ein wenig zu verbessern, aber es ist immer noch etwa 60 Sekunden für etwa 40 Datensätze mit jeweils mehrere Kind Entitäten. Ich habe Fälle, wo ich Tausende von Datensätzen einfügen muss und es kann extrem langsam werden. Mein Code ist wie folgt:
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();
}
Warum rufen Sie sowohl 'AddRange' als auch' BulkInsert' an? Sie sollten eine davon auswählen, da beide dieselbe Operation ausführen. – shlatchz
@SteveGreene Von BulkInsert: "Um Masseneinfügung mit DbContext zu kombinieren, muss TransactionScope verwendet werden." – tqrecords