我需要使用C#和EF(使用.NET 3.5)在數據庫中插入一些對象(約400萬)。我的方法,增加了的對象是在爲:帶EF的批量插入
private DBModelContainer AddToContext(DBModelContainer db, tblMyTable item, int count)
{
db.AddTottblMyTable (item);
if ((count % 10000== 0) || (count == this.toGenerate))
{
try
{
db.SaveChanges();
}
catch (Exception e)
{
Console.WriteLine(e.StackTrace);
}
}
return db;
}
如何從上下文對象分開添加的對象(類型tblMyTable)?我不需要它們以供以後使用,並且當添加超過300000個對象時,db save(db.SaveChanges())之間的執行時間大大增加。
問候
我不認爲使用實體框架批量導入是有效的,你有沒有考慮過使用'SqlBulkCopy'?另外,你可以添加一個如何將實體添加到上下文的代碼示例嗎? – elolos 2014-10-08 08:00:49
而不是「分離」,嘗試關閉更改跟蹤 - AutoDetectChangesEnabled with:context.Configuration.AutoDetectChangesEnabled = false; – reckface 2014-10-08 08:10:51
@reckface context.Configuration.AutoDetectChangesEnabled在.NET 3.5中不可用 – 2014-10-08 08:34:59