Entity Framework .Include () mit Überprüfung der Kompilierzeit?

8

Betrachten Sie den folgenden Code, der gegen einen von EF generierten Datenkontext aufruft:

%Vor%

Wenn ich den Namen der Abteilungsbeziehung ändere, wird dieser Code einen Laufzeitfehler auslösen. Also gibt es eine Möglichkeit, die .Include () -Methode in einer sicheren Weise aufzurufen, so dass ich die Kompilierzeit für alle Beziehungen überprüfen, auf die verwiesen wird?

    
Mike Chamberlain 27.05.2010, 12:37
quelle

5 Antworten

5

Ich habe die Idee von moi_meme einen Schritt weiter entwickelt und meine Kollegin entwickelte die folgende Lösung, die in allen Fällen funktioniert. Er führte eine neue Methode namens caled Includes() für den Umgang mit One-to-Many- und Many-to-Many-Beziehungen ein. Es erlaubt Ihnen, dies zu schreiben:

%Vor%

wie folgt:

%Vor%

Alles Gute geht an Ссылка , also gib ihm etwas Liebe, wenn dir die Lösung gefällt.

> %Vor%     
Mike Chamberlain 02.06.2011, 05:55
quelle
6

Ich habe das folgende mit Entity Framework 5 verwendet. Der Schlüssel ist, System.Data.Entity

einzuschließen %Vor%     
Xavier John 08.01.2014 20:07
quelle
5

Ich habe eine kleine Erweiterung von ObjectQuery gemacht, die so läuft

%Vor%

was auch erfordert

%Vor%

damit können Sie

machen %Vor%

wird zur Kompilierzeit überprüft. Wenn ich mich richtig erinnere, funktioniert diese Methode nicht für eine Viele-zu-Viele-Beziehung, aber sie funktioniert für Dinge wie

%Vor%

Viel Glück für Sie

    
moi_meme 27.05.2010 12:49
quelle
2
%Vor%     
Fabrizio Accatino 10.04.2012 13:25
quelle
1

Falls Sie immer noch Versionen vor Entity Framework 5 verwenden, ist die gute Nachricht ab C # 6, Sie können nun nameof verwenden, um den Namen einer Klasse / eines Objekts abzurufen.

So können Sie jetzt

machen %Vor%

Wenn Sie EF & gt; 5, dann Xaviers Antwort ist besser

    
Korayem 20.11.2015 19:59
quelle

Tags und Links