Wie Baue ich bis LINQ dynamisch
Ich habe ein Szenario, in dem ich benutzerdefinierte konfiguriert Spalte Namen, die assoziierten Operatoren wie <, > = zwischen etc. und dann ein Wert zugeordnet.
Ich bin versucht zu bestimmen, wenn es möglich ist, den Aufbau einer LINQ-Abfrage mit dynamischen (string) where-Klausel?
Habe ich bemerkt das Prädikat.ODER Preditcate.UND Zeug, aber das ist nicht ganz das, was ich bin reden über.
Irgendwelche Vorschläge?
- Möglich Doppelte des stackoverflow.com/questions/736952/... Frage
- "Doch die Dynamische linq funktioniert nur auf IQueryable und nicht IEnumerable" - siehe dazu die Anmerkung AsQueryable auf meine Antwort...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn du redest über ein string
Where
- Klausel (eher als der Bau, der Ausdruck usw selbst) - dann die Dynamische LINQ-Library (im 3,5-Proben, IIRC) sollte das ausreichen.Beachten Sie, dass das Beispiel unten ist für die Datenbank-Nutzung, aber Sie können es mit LINQ-to-Objekte durch Aufruf
.AsQueryable()
auf Ihre in-memory-Daten.Tatsächlich, es ist eine spezielle library von Microsoft (System.Linq -.Dynamische), dass kommt mit C#, VS2008 Beispiele, die dies unterstützt. Sie bekommen von hier (Microsoft-Download)
Die Bibliothek ist in der \LinqSamples\DynamicQuery Verzeichnis der Beispiele von oben download.
Umfangreiche Anwendungsbeispiele prüfen Sie auf dieser Seite: http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx
Außerdem können Sie mit expression-Bäume angelegt, um dynamische Abfragen. Siehe:
http://msdn.microsoft.com/en-us/library/bb397951.aspx
http://www.interact-sw.co.uk/iangblog/2005/09/30/expressiontrees
http://blogs.msdn.com/charlie/archive/2008/01/31/expression-tree-basics.aspx