エンティティ フレームワークを使用して、何十万ものレコードを保存しようとしています。数十万件のレコードを保存した後、次のエラーが発生します。
: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;
}
}