2017-02-06 3 views
0

Wie kann ich ein Objekt ohne seine Kinder auswählen? i In meinem Code haben:Wie wählen Sie ein Objekt ohne seine Kinder?

var db = new context(); 
var result = db.users.include("jobs"); 

Somthing wie "nicht enthalten"

+0

Vielleicht etwas wie 'db.users'? –

+0

sogar mit db.users a hat Benutzer mit Jobs – AddRock

+0

Vielleicht, weil Lazy Loading aktiviert ist und lädt die untergeordneten Objekte, wenn Sie auf sie zugreifen möchten? Es wird sie nicht eifrig laden, wenn Sie es nicht explizit angeben. – galister

Antwort

1

Wenn Sie db.users verwenden, werden Sie tatsächlich Benutzer ohne verbundenen Arbeitsplätze auswählen. Wenn jedoch Lazy-Loading aktiviert ist, wird eine andere Datenbankabfrage ausgeführt, wenn Sie versuchen, auf Jobs des Benutzers zuzugreifen. Wenn Sie nicht möchten, dass eine andere Datenbankabfrage ausgeführt wird, deaktivieren Sie einfach das Lazy-Laden. Z.B. im Konstruktor des Kontextes

Configuration.LazyLoadingEnabled = false; 

Wenn faul-Laden deaktiviert ist und Sie werden einige verbundene Unternehmen, ohne zusätzliche Abfragen benötigen, dann können Sie umfassen ihnen, wie Sie es mit Jobs jetzt tun.

+0

ja in configruation ich kann das tun, aber ich habe viele Projekte arbeiten mit der gleichen app.config. – AddRock

+0

Sie können app.config für jedes Projekt anpassen. Oder benutze Konstruktor wie oben –

+0

Das Problem ist, in der Konfiguration des BLL-Projekts habe ich 'Configuration.LazyLoadingEnabled = true;'. und ich kann die Konfiguration nicht ändern, da die Methoden des BLL-Projekts von vielen anderen Projekten abgerufen werden. und viele Projekte benötigen LazyLoadingEnabled = true. – AddRock

Verwandte Themen