Guten Morgen!Speicherverbrauch von EF
Eigentlich mit EF Ich spiele um atm ein wenig und ich brauche Ihre Hilfe Jungs:
Folgendes Szenario: Ich habe eine Tabelle mit einer Menge von Daten enthalten. Wenn ich diese Tabelle über EF abfrage, werden alle Datensätze in den Speicher geladen.
z.
var counter = default(int);
using (var myEntities = new MyEntities())
{
foreach (var record in myEntities.MySpecialTable)
{
counter++;
}
}
Also, ich durchlaufen alle Datensätze von MySpecialTable und counter
up zählen. Wenn ich mir den Taskmanager ansehe oder irgendetwas anderes, das mir den Speicherverbrauch meiner App zeigt, sagt er mir: 400Mb. (wegen der Daten)
Wenn ich die Tabelle ein anderes Mal durchlaufe, wird der Speicherverbrauch verdoppelt.
Ich habe bereits versucht, den GC anzurufen, aber es wird nicht funktionieren.
Warum werden alle Datensätze jedes Laufs irgendwo im Speicher gespeichert (und nicht freigegeben)? Wo werden sie gespeichert? Gibt es eine Möglichkeit, EF-Abfragen wie ein DataReader zu verhalten? Oder gibt es ein anderes ORM, das so elegant ist wie EF?
edit:
nein, ich mache keine Zählung so ... das ist nur für die Iteration zeigt :)
arbeitete wie Charme! vielen Dank! –