2017-11-12 1 views
0

Ich verwende FirstOrDefault oder First Befehl in einer Abfrage zum Abrufen von Daten einer Entität, die Beziehung mit anderen Entitäten in meiner Datenbank hat.Entity Framework Abfrage - Laden Datenoptimierung

Meine Frage ist: die FirstOrDefault oder First Befehl über eine Sammlung laden alle Daten anderer Entitäten mit dieser Entität in den Speicher?

+1

Das hängt von dem O/RM-Muster ab, das Sie verwenden. [Das könnte Ihnen helfen] (https://docs.microsoft.com/en-us/ef/core/querying/related-data) –

Antwort

1

Schauen Sie hier

http://www.entityframeworktutorial.net/EntityFramework4.3/lazy-loading-with-dbcontext.aspx

Das Standardverhalten von Unternehmen ist ein träges Laden, so wird es nicht Daten laden, bis Sie sie fragen.

+0

Noch ein Gedanke, Sie haben über den Ram gefragt, so dass Sie neugierig auf die Leistung sind, ich denke, dass es für große dB besser ist, dies auszuschalten, ich habe den Unterschied nicht überprüft, aber stell dir die Situation vor. Sie durchlaufen Tausende von Datensätzen und prüfen einen Wert aus der referenzierten Registerkarte. So wird das Lazy Loading Tausende von sqls senden, um die referenzierten Daten zu erhalten. Eine pro Schleife. Sie können es manuell laden, wenn Sie die Daten aus dem Kontext erhalten, und ich wette, dass es einmal nach Daten fragt. Wenn ich falsch liege, schreibe es bitte. –