Ich bin mit EF (EF-Core eigentlich mit ASP.NET-Core auf OSX, aber ich glaube, das ist eher eine allgemeine "newbie-style" EF Frage ist, so lesen Sie bitte weiter ...)Entity Framework Speicherverwaltung und Dispose?
Ich habe eine kleine Protokollierungsroutine erstellt, die EF verwendet, um Protokolleinträge in meiner Datenbank zu veröffentlichen. So ähnlich wie diese, von einer Repository-Klasse aufgerufen:
WebLog log = new WebLog(source, path, message);
Context.WebLogs.Add(log);
Context.SaveChanges();
Wo WebLog
eine einfache Modellklasse ist, ist Context.WebLogs
eine DbSet<WebLog>
Sammlung und Context
ist offensichtlich die DbContext
. Ich glaube, das ist ziemlich einfach.
Aber meine Frage ist das: Wenn ich fortfahren, neue Protokolleinträge in die Context.WebLogs
Sammlung hinzuzufügen, und ich nie etwas wie meinen Server neu starten, ist die Sammlung nicht einfach wachsen ohne Grenzen? Gibt es irgendeine Art von "Bereinigen" oder "Flush" -Aktion, die ich regelmäßig durchführen kann, um die Speichernutzung zu verwalten (ohne die festgeschriebenen Zeilen in der Datenbank zu beeinflussen, natürlich - möchte ich, dass diese bestehen bleiben). Oder ist DbSet
eine Art spezielle Sammlung, die das nicht tun wird?
Die Aktion, nach der Sie suchen, trennt nur alle Entitäten, die sich in einem Status "Unverändert" befinden. Ich bezweifle stark, dass EF so etwas alleine machen würde, was einer der Gründe dafür ist, dass die Lebensdauer des Kontextes (Eintrittszeitraums) begrenzt sein sollte. – DevilSuichiro