Cast linq Ergebnisse zu ListMyInterface

8

Ich habe meine Entitäten erweitert, um spezifische Schnittstellen für ihren Typ zu implementieren. Ich versuche die folgende Abfrage auszuführen:

%Vor%

Ich erhalte jedoch weiterhin den folgenden Fehler:

"LINQ to Entities unterstützt nur die Verwendung primitiver Typen von Entity Data Model"

Grundsätzlich möchte ich immer die Ergebnisse vom rohen Entitätstyp in eine generische Liste der implementierten Schnittstelle konvertieren.

Ist das möglich?

    
James 01.09.2009, 07:42
quelle

3 Antworten

20

Sie können die Umwandlung auf dem Client durchführen, indem Sie die Translationsschicht der Entitätsframework-Abfrage umgehen, indem Sie AsEnumerable aufrufen. Erweiterungsmethode:

%Vor%

Es ist jedoch besser, die Reihenfolge des Count check umzukehren:

%Vor%     
Mehrdad Afshari 01.09.2009, 07:44
quelle
3

Wenn Sie Ihre Ergebnisse in einen komplexen Typ umwandeln möchten, müssen Sie den Code zwingen, LINQ to Objects statt LINQ to Entities zu verwenden.

Der Aufruf der AsEnumerable Erweiterungsmethode vor dem Cast ist hier der Trick.

Versuchen Sie Folgendes:

%Vor%

Beachten Sie auch, dass es nicht ratsam ist, Count() auf dem Aufzählungszeichen zu überprüfen, da dies bedeutet, dass die Auflistung zweimal durchlaufen wird.

    
Noldorin 01.09.2009 07:46
quelle
0
%Vor%     
Spence 01.09.2009 07:46
quelle