Verwenden Sie reflektion, um lambda-Ausdruck, über den Namen der Eigenschaft
Möchte ich geben dem Benutzer die Wahl zwischen der Suche nach verschiedenen Eigenschaften. Zum Beispiel
[TEXT EINGEBEN] | [WÄHLEN SIE DIE OPTION {ID, NAME, TELEFON}] | [SUCHE]
Und später sollte ich bauen meine Abfrage wie diese:
repository.Where(lambda-expression)
Wo ist die lambda-Ausdrucks ist, bauen Sie aus die ausgewählte option {ID, NAME, TEL}
(Zum Beispiel: x => x.NAME.Equals(INPUT-TEXT))
Gibt es eine Möglichkeit zu bauen, die lambda von dem Namen der Eigenschaft, vielleicht mit der spiegelung?
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Baust du nur eine lambda-expression - erstellen Sie einen Ausdruck-Baum. Es ist nicht sehr schwer, aber es dauert ein wenig Geduld. In Ihrem Beispiel würden Sie vermutlich brauchen:
Das ist vorausgesetzt:
Foo
propertyName
inputText
Expression.Call
die eineMethodInfo
statt einerstring
zu identifizieren, die Methode.Für diese Art der Sache, ich benutze so etwas (Hinweis: ist eine, Wo "Wie") :
Ich hatte zu Angesicht die gleiche Art von problem und die folgende Methode gelöst mein problem perfekt.