2011-01-04 5 views
2

Ich verwende EF4 mit Self Tracking Entities T4-Vorlage.EF4 Self tracking entities Navigationseigenschaft

Wenn ich eine Auswahl auf Entität Seite (mit Navigationseigenschaft Kategorie) ausführen wie:

var page = (from p in context.Page select p).FirstOrDefault(); 

Die Kategorie Navigation Eigenschaft ist immer null.

Wenn ich es wie folgt tun:

var page = (from p in context.Page.Include("Category") select p).FirstOrDefault(); 

Die Kategorie geladen wird.

Warum muss ich die Include-Funktion mit einer fest codierten Zeichenfolge verwenden? Ist es nicht möglich, dass EF4 automatisch die Navigationseigenschaft lädt, wenn ich darauf zugreife?

Oder funktioniert das nur mit EntityObjects und nicht STE?

Antwort

1

STE unterstützt kein Lazy-Laden, nur über context.LoadProperty. POCO + EntityObject unterstützt es.

.Include ist für das eifrige Laden, hoffentlich wird diese Methode geändert, um Lambda-Ausdrücke anstelle von hardcoded Zeichenfolge zu unterstützen.

+2

Sie können eine Erweiterungsmethode erstellen, wenn Sie möchten. http://blogs.msdn.com/b/stuartleeks/archive/2008/08/27/improving-objectquery-t-include.aspx – muruge