ExpressionFuncT, bool fügt eine unerwünschte Konvertierung hinzu, wenn sie in der generischen Methode erstellt wird

8

Ich habe eine Funktion, um einen Ausdruck zu erzeugen, der in einer linq Where-Klausel verwendet wird.

%Vor%

(Hinweis: IAktiv definiert nur die Eigenschaft 'Aktiv')

Es gibt andere verwandte Funktionen und die Idee ist, dass ich die erforderlichen Bedingungen in eine generische Klasse einbringen kann, um Geschäftsregeln usw. zu steuern.

Das Problem ist, dass der zurückgegebene Ausdruck die lamda (vom Debugger aus gesehen) enthält:

%Vor%

Was von linq natürlich abgelehnt wird: 'LINQ to Entities unterstützt nur die Verwendung primitiver Typen von Entity Data Model.'

SO ist meine Frage ...

Wie verhindere ich dieses Verhalten? Es gibt keine Notwendigkeit für eine Umwandlung und eindeutig ist es unerwünscht. Ist das überhaupt möglich?

    
Max 01.02.2013, 16:03
quelle

2 Antworten

10

Nun, vorausgesetzt, dass dies nur mit Klassen funktionieren muss (die Konvertierung ist für Boxen-Werttypen), können Sie eine class -Einschränkung hinzufügen:

%Vor%

... und die Umwandlung geht weg.

    
Ani 01.02.2013, 16:17
quelle
2

Versuchen Sie Folgendes:

%Vor%     
Hamlet Hakobyan 01.02.2013 16:07
quelle