2009-07-12 9 views
2

Ich habe vor kurzem begonnen, die DynamicQuery API zu verwenden, und es wurde schnell offensichtlich, dass es zahlreiche Einschränkungen hat. Ich habe mindestens eine Verbesserung online gefunden: support for enum arguments, aber es ist ziemlich klar, dass diese API nicht aktiv gepflegt wird (wenn überhaupt).Erweiterte DynamicQuery?

Falls ich falsch liege und dort ist jemand Wartung einer verbesserten Version - bitte posten einen Link!

Alternativ wäre auch ein separates, aktives Projekt mit ähnlichen Zielen von Interesse.

(Klärung: Ich bin auf der Suche Strings zur Laufzeit zu analysieren.)

+0

Aus Neugier, auf welche Einschränkungen stoßen Sie? –

+0

Eine solche Einschränkung wird im verknüpften Artikel erwähnt - StringComparison.OrdinalIgnoreCase kann nicht an StartsWith() übergeben werden. Es gab ein paar andere kleine Dinge - z.B. die Abwesenheit der? Operator. Im Großen und Ganzen ist es jedoch beeindruckend - es geht so weit wie es ist. –

Antwort

2

Am Ende haben wir nur einige der Features implementiert, die wir bei der Bearbeitung des Quellcodes verpasst haben. Zusätzliche Unterstützung für das Übergeben einer statischen Klasse als "extern" (Terminologie von DynamicQuery), Unterstützung für Aufrufmethoden für diese statische Klasse und Typrückschluss, wenn solche Methoden generisch sind.

Ich vermute, es gibt nicht viel Nachfrage nach diesem, also habe ich mich nicht darum gekümmert, es irgendwo verfügbar zu machen. Lass es mich wissen, wenn du anders denkst.

Bearbeiten: aufgrund einer Anfrage ist jetzt DynamicQuery Enhanced auf BitBucket verfügbar. Erwarten Sie enttäuscht zu sein; Werfen Sie einen Blick auf diese Info und diese list of tweaks.

+0

Ich denke anders. –

+0

@ [Richard Hein] - alles klar, es ist jetzt auf BitBucket unter http://bitbucket.org/dynamicquery/dynamicqueryenhanced/ (vollständige Liste der Verbesserungen unter http://bitbucket.org/dynamicquery/dynamicqueryenhanced/wiki/Tweaks). Erwarte jedoch, dass du nicht enttäuscht bist :) Es ist alt und wurde nicht mit den neuesten "offiziellen" Versionen von DynamicQuery aktualisiert. –

1

ich PredicateBuilder gesehen habe vor als Alternative erwähnt (hier auf Stackoverflow). Ich habe es zwar nicht benutzt, aber es könnte dir nützlich sein.

+1

PredicateBuilder ist sehr cool, und es ist sehr C# 3.0-ish. –

+0

Soweit ich das beurteilen kann, ist es keine Alternative - es analysiert keine Strings. Es kann wahrscheinlich verwendet werden, um mehr Dinge mit DynamicQuery zu tun. –

+0

Ich denke, es hängt davon ab, was Sie tun möchten. Ich habe als Antwort hinzugefügt, da es dynamische Abfragen erstellt - und ist sehr nützlich, wenn Sie Builds oder Anweisungen erstellen möchten. Vielleicht sollten Sie Ihre Frage aktualisieren, um anzugeben, dass Sie die Kompilierzeitprüfung nicht verwenden möchten? – RichardOD