Wie fügt man einem Ausdruck eine weitere Bedingung hinzu?

8

Ich habe einen Ausdruck wie folgt:

%Vor%

Ich möchte nach dieser Zeile eine Bedingung zu exp hinzufügen. Wie kann ich das tun?

    
Mostafa Soghandi 26.02.2014, 11:19
quelle

2 Antworten

11

Einfach damit:

%Vor%

Beachten Sie, dass Sie es nicht so machen können:

    %Code%

, weil exp = i => exp.Compile()(i) && i % 2 == 0; //example additional condition dem Verweis als Referenz hinzugefügt wird und das Aufrufen von es daher zu einem exp führt.

    
BartoszKP 26.02.2014, 11:21
quelle
3

Sie haben zwei Möglichkeiten. Die erste ist die Version von BartoszKP, um den ersten Ausdruck zu puffern und danach zu verwenden. Obwohl dies eine großartige Syntaxunterstützung bietet, bedeutet dies auch, dass Systeme wie das Entity Framework den Ausdruck nicht wirklich verwenden können, da er in der Blackbox ist. Wenn dieser Ausdruck in einer Datenbankabfrage verwendet wurde, konnte das EF dieses Prädikat nicht auf dem Server überprüfen, sondern muss alle Daten an den Client abrufen, falls es überhaupt funktioniert.

Wenn Sie also den Ausdruck z. Für eine Datenbankabfrage müssen Sie die Expression-API verwenden, d. h.

%Vor%

Die drei Punkte geben den Ausdruck an, den Sie als zweiten Teil einfügen möchten. Sie könnten einen anderen Ausdruck verwenden, der vom Compiler erstellt wurde, aber Sie müssten dann die Parameter ersetzen.

    
Georg 26.02.2014 11:47
quelle

Tags und Links