2010-12-11 3 views
2

Es gibt eine Entity mit vielen Beziehungen, wenn ich sage, dass EF eine Abfrage auf eine Entity lädt, lädt sie alle Eigenschaften (OK) mit Beziehungen (ich will nicht)!Wie sagt man EF, Lade nicht alle Eigenschaften!

Dies ist eine große Strafe für die Leistung, weil ich nur einige Eigenschaften nicht alle Beziehungen brauche.

Wie sagt EF, dass nur Entity-Eigenschaft laden und Beziehungen nicht laden (EntityCollection<TEnitity>)?

Ich möchte die Eigenschaften von Beziehungen von Hand laden!

Antwort

3

Sind Sie sicher, dass die Navigationseigenschaften eifrig geladen sind? Sie sollten nicht standardmäßig sein. Verwenden Sie POCO oder Code First? Wenn dies der Fall ist, müssen Sie sicherstellen, dass Ihre Navigationseigenschaften als "virtuell" gekennzeichnet sind. Virtuelle Eigenschaften werden faul geladen.

Um zu überprüfen, ob Navigationseigenschaften lazy loading oder eager loading sind, möchten Sie ein Tool wie SQL Profiler verwenden.

1

JohnnyO ist korrekt; Der Standardwert für ObjectContextOptions.LazyLoadingEnabled ist false. Wenn ich ein Modell aus der Datenbank erstellen, ist der Standardwert für das Modell jedoch true. Wenn Sie die generierten EF-Klassen verwenden, versuchen Sie dies auf false einzustellen.

alt text

Verwandte Themen