Wie baue ich LINQ dynamisch auf?

7

Ich habe ein Szenario, in dem ich benutzerdefinierte Spaltennamen, assoziierte Operatoren wie & lt; & gt; = zwischen usw. und dann ein Wert zugeordnet.

Ich versuche herauszufinden, ob es möglich ist, eine LINQ-Abfrage mit einer dynamischen (string) where-Klausel aufzubauen?

Ich habe die Predicate.OR Preditcate.AND Sachen bemerkt, aber das ist nicht ganz das, worüber ich rede.

Irgendwelche Vorschläge?

    
Jabezz 18.08.2009, 08:12
quelle

3 Antworten

9

Wenn Sie über eine Zeichenfolge Where -Klausel sprechen (anstatt den Ausdruck selbst zu erstellen) - dann Dynamische LINQ-Bibliothek (in den 3,5 Proben, IIRC) sollte ausreichen.

Beachten Sie, dass das folgende Beispiel für die Datenbanknutzung gilt; Sie können es jedoch mit LINQ-to-Objects verwenden, indem Sie .AsQueryable() für Ihre speicherinternen Daten aufrufen.

alt text http://www.scottgu.com/blogposts/dynquery/step2.png

    
Marc Gravell 18.08.2009, 08:19
quelle
8

Tatsächlich gibt es eine bestimmte Bibliothek von Microsoft ( System.Linq.Dynamic ), die mit den C # VS2008-Beispielen geliefert wird, die dies unterstützen. Holen Sie es von hier (Microsoft Download)

Die Bibliothek ist im Verzeichnis \ LinqSamples \ DynamicQuery der Beispiele des obigen Downloads enthalten.

Für umfangreiche Anwendungsbeispiele, lesen Sie diese Seite: Ссылка

    
Alex 18.08.2009 08:18
quelle
2

Sie können auch Ausdrucksbäume verwenden, um dynamische Abfragen zu erstellen. Siehe:

Ссылка

Ссылка

Ссылка

    
Kamarey 18.08.2009 08:48
quelle

Tags und Links