Dynamischer Ausdruck mit LINQ. Wie findet man die Küchen?

9

Ich versuche, einen dynamischen Benutzerfilter zu implementieren, bei dem einige Eigenschaften ausgewählt, einige Operatoren ausgewählt und auch die Werte ausgewählt werden.

Da ich auf diese Frage noch keine Antwort gefunden habe, habe ich versucht, LINQ-Ausdrücke zu verwenden.
Hauptsächlich muss ich alle Häuser identifizieren, die Haupträume sind Küchen (irgendein sens, ich weiß).

%Vor%     
serhio 16.08.2011, 10:54
quelle

5 Antworten

6
%Vor%

Aber Sie müssen die Eigenschaft RoomType auf die Räume vorher setzen.

Ok, editieren:

Sie müssen also neu definieren:

%Vor%

Dann, wenn Sie es verwenden:

%Vor%

Bearbeiten # 2:

Ok, hier gehts:

%Vor%

Edit # 3: Von, für Ihre Bedürfnisse, habe ich keine Ideen für jetzt. Ich gebe dir einen letzten:

Deklarieren Sie eine Erweiterungsmethode für den String-Typ:

%Vor%

Dann benutze es in diesem Ausdruck wie:

%Vor%

Das liegt daran, dass Enums anscheinend anders behandelt werden. Diese Erweiterung wird die Zeichenfolge für andere Typen unverändert lassen. Nachteil: Sie müssen dort ein weiteres typeof() hinzufügen.

    
Vladimir 16.08.2011, 11:07
quelle
0
%Vor%

Die Methode Where verwendet einen Func<House, bool> oder einen Expression<Func<House, bool>> als Parameter, aber die Variable comparison hat den Typ LambdaExpression , der nicht übereinstimmt. Sie müssen eine andere Überladung der Methode verwenden:

%Vor%     
Danny Chen 16.08.2011 11:08
quelle
0

Ich würde die where-Klausel nicht auf diese Weise erstellen - ich denke, es ist komplexer als es für Ihre Bedürfnisse sein muss. Stattdessen können Sie where-Klauseln wie folgt kombinieren:

%Vor%

Ich habe das getestet, ehrlich:)

    
Steve Wilkes 16.08.2011 11:14
quelle
-1

Was ist damit?

%Vor%     
Dean Chalk 16.08.2011 11:06
quelle
-1

Um einen neuen Enum -Typ zu dynamischem Linq hinzuzufügen, müssen Sie den folgenden Code hinzufügen:

%Vor%

in vordefinierten dynamischen Typen. Das funktioniert für mich.

    
Amine 22.03.2013 13:10
quelle

Tags und Links