Gibt es eine Möglichkeit, das verzögerte Laden für bestimmte Abfragen in Entity Framework 6 zu deaktivieren? Ich möchte es regelmäßig verwenden, aber manchmal möchte ich es deaktivieren. Ich verwende virtuelle Eigenschaften, um sie faul zu laden.
c#
entity-framework
lazy-loading
Marco Alves
quelle
quelle
this.Configuration.LazyLoadingEnabled = false;
und dann erneut einstellenthis.Configuration.LazyLoadingEnabled = true;
? Sie können auch diese msdn.microsoft.com/en-us/data/jj574232.aspxAntworten:
Legen Sie den folgenden Code vor der Abfrage fest, die Sie ausführen möchten
quelle
Sie können das verzögerte Laden für bestimmte Abfragen wie folgt deaktivieren:
quelle
Möglicherweise fehlt mir hier etwas, aber anstatt die Konfiguration jedes Mal zu ändern, könnte ein anderer Ansatz darin bestehen,
.Include()
nur die Abfragen zu verwenden, bei denen Sie eifrig laden möchten?Angenommen, wir haben eine
Product
Klasse, die eine Navigationseigenschaft für eineColour
Klasse hat, dann könnten Sie dieColour
für eine solche ladenProduct
-quelle
Gehen Sie zu Ihren Diagrammeigenschaften und suchen Sie eine Eigenschaft, die zum verzögerten Laden bestimmt ist, und deaktivieren Sie sie.
Wenn Sie zuerst Code verwenden, gehen Sie zu Ihrem Konfigurationsbereich und deaktivieren Sie ihn von dort aus mit:
quelle
In EF Core:
context.ChangeTracker.LazyLoadingEnabled = false;
Per dieser Antwort .
quelle
Ein weiterer Ansatz für eine andere EF-Version (Entity Framework 5)
quelle
context
ist einObjectContext
, der mehr oder weniger veraltete Vorgänger seines Wrappers ,DbContext
.Angenommen, Sie haben Folgendes:
Sie würden immer noch faul laden, trotz der expliziten Einstellung, dies nicht zu tun. Das Update ist einfach, ändern Sie es wie folgt:
quelle