Ich habe das verzögerte Laden für ein Entity Framework-Modell der Datenbank aktiviert. In diesem Beispiel verwende ich die Tabellen State und City, wobei die Tabelle City eine untergeordnete Tabelle für die Tabelle State ist (die über einen Fremdschlüssel verbunden ist). Wählen Sie mithilfe von Entity Framework nur übergeordnete Daten und keine untergeordneten Daten aus.
Bei Verwendung der folgenden Abfrage:
from State in DBEntity.State
where State.StateId == 1
select State
ich den Staat Objekt, das eine Liste der Stadt Objekte enthält. Diese Liste wird bei Verwendung der obigen Abfrage ausgefüllt. Unter bestimmten Umständen brauche ich nur die Liste der Staaten und möchte die Städte nicht. In diesen Fällen würde das Abrufen der untergeordneten Daten (Städte) die Leistung erheblich beeinträchtigen. Unter anderen Umständen brauche ich alle untergeordneten Daten, selbst wenn die Leistung langsam ist.
Wie kann ich erreichen, die folgenden:
- Holen Sie sich alle Staats- und Stadt Daten in einer Funktion
- nur die Statusdaten holen und nicht die Stadt Daten (keine Child-Daten) in einer anderen Funktion
Ich würde empfehlen, lazy loading modellweit zu deaktivieren, und eifrig laden ('Include()'), wenn nötig. Bei Bedarf können Sie das verzögerte Laden in einzelnen Kontextinstanzen aktivieren. –