我試圖使用實體框架保存數十萬條記錄。節省幾十萬的記錄後,我得到以下錯誤:使用實體框架的System.OutOfMemoryException?
:System.OutOfMemoryException的
我的代碼
foreach (BibContent objbibcontents in lstBibContent)
{
db.BibContents.AddObject(objbibcontents);
c = c + 1;
if (c == 1000)
{
db.SaveChanges();
c = 0;
}
}
我節省了1000條記錄,我的數據庫是不重寫另一個1000次記錄後發現。它將它們添加到我的dbcontext中。
我在創建1000個記錄後創建了一個新的實例,但是我的數據庫仍然有前一個對象的數據。查看我的代碼
foreach (var objbibcontents in lstBibContent)
{
vibrantEntities db1 = new vibrantEntities(szConStr);
lstBibCon.Add(objbibcontents);
// db.BibContents.AddObject(objbibcontents);
c = c + 1;
if (c == 1000)
{
foreach (BibContent bibobject in lstBibCon)
{
db1.BibContents.AddObject(bibobject);
}
lstBibCon.Clear();
db1.SaveChanges();
c = 0;
flag = 1;
}
}
可以清除我的DbContext而不是重新創建? –
你將不得不去,並設置每個添加的對象分離。創建一個新的上下文實例是更好的方法。 –