私は、エンティティフレームワークを使用して何十万ものレコードを節約しようとしています。System.OutOfMemoryException Entity Frameworkを使用していますか?
:何千ものレコードの数百を保存した後、私は、エラー、次の取得System.OutOfMemoryExceptionに
私のコード
foreach (BibContent objbibcontents in lstBibContent)
{
db.BibContents.AddObject(objbibcontents);
c = c + 1;
if (c == 1000)
{
db.SaveChanges();
c = 0;
}
}
私は1000年に私のDBは、別の1000件のレコードが上書きされていない記録し保存した後に気づきました。それらを私のdbcontextに追加しています。
1000個のレコードの後に新しいインスタンスを作成していますが、dbには以前のオブジェクトのデータが残っています。私のコードを参照してください
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をクリアし、再度作成することができますか? –
あなたは、追加された各オブジェクトをデタッチして設定する必要があります。新しいコンテキストインスタンスを作成する方がはるかに良い方法です。 –