Ich versuche, Hunderttausende von Aufzeichnungen mit Entity-Framework zu speichern. Nach dem Speichern einige Hunderttausende von Datensätzen erhalten ich Fehler folgende:System.OutOfMemoryException mit Entity Framework?
: System.OutOfMemoryException
Mein Code
foreach (BibContent objbibcontents in lstBibContent)
{
db.BibContents.AddObject(objbibcontents);
c = c + 1;
if (c == 1000)
{
db.SaveChanges();
c = 0;
}
}
bemerkte ich nach dem Speichern 1000 zeichnet meine db nicht zwingende weitere 1000 Datensätze ist. Es fügt sie meinem dbcontext hinzu.
Ich erstelle eine neue Instanz nach 1000 Datensätze, aber meine DB hat immer noch die Daten des vorherigen Objekts. Siehe meinen Code
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;
}
}
kann ich meine DbContext löschen eher dann wieder schaffen? –
Sie müssten jedes hinzugefügte Objekt als getrennt setzen. Das Erstellen einer neuen Kontextinstanz ist viel besser. –