2012-10-07 16 views
7

Ich habe mein Entity Framework 4.3 Datenbank erstes Projekt auf das neue Entity Framework 5 aktualisiert. Anscheinend verwende ich jetzt DbContext anstelle von ObjectContext. LoadProperty in Entity Framework 5

Ich habe meine alte EDMX-Datei durch eine neue ersetzt. Mein alter Business Code, die zuvor wurde meine 4.3 .edmx Datei, hat jetzt ein Problem mit dem Code der LoadProperty Methode:

using (var context = new MyEntities()) 
{ 
    Models.User user = context.Users.First(x => x.GUID == guid); 
    context.LoadProperty(user, o => o.Settings); 
    return user; 
} 

Es scheint, dass LoadProperty keine verfügbare Methode in DbContext ist.

Wie kann ich trotzdem stark typisiert laden?

Ich glaube, ich

context.Users.Include("Settings") 

verwenden könnte, aber das ist nicht stark typisierte und anfällig für Fehler.

+1

Sie Sie haben EF4.3 nicht verwendet, wenn Sie ObjectContext verwendet haben - EF4.3 war im Grunde alles über DbContext ... Wenn Lazy Loading aktiviert ist, können Sie einfach die .Settings-Eigenschaft verwenden, ohne sie explizit laden zu müssen. Beachten Sie, dass dies zu einem Trip zu einer Datenbank führen kann. Wenn Sie dies häufig tun, ist es möglicherweise günstiger, .Include() wie unten angegeben zu verwenden. – Pawel

+0

@Pawel: Oh Entschuldigung. Ich habe eine Frage zu einem anderen Problem gelesen, dem ich nach dem Update begegnet bin und habe es mit "Lehrling" zitiert, um meine Situation besser zu beschreiben. Ich habe diesen Satz durchgestrichen. – citronas

Antwort

15

Sie können auch die Include-Methode mit Lambda verwenden. vergessen Sie nicht die Anweisung using, weil dies kommt von der DbExtension Klasse umfassen:

using System.Data.Entity; 

...

context.Users.Include(u => u.Settings); 

hier einige Informationen über die Erweiterungsmethode umfassen: msdn info

+0

Super! Genau das, was ich gesucht habe! Ich hoffe, Ihre Antwort wird anderen mit dem gleichen Problem helfen – citronas

+0

Epische Erweiterung muss ich sagen. Es ist großartig, da es stark typisiert ist. –

Verwandte Themen