ich ein paar Probleme habe mit dem Versuch, in einer Unterschall Welt zu leben und ein Subsonic-Mädchen zu sein, wenn es um Unterschall Ausdrücke kommt ....Subsonic dynamischer Abfrageausdruck
nach Subsonic Query (ConditionA OR ConditionB) AND ConditionC liest es scheint, ich bin nicht die nur einer mit dieser Art von Problem, aber hoffentlich jemand (der Allmächtige rauben ??) kann dies beantworten.
Ich versuche, einen Ausdruck in meiner Abfrage basierend auf einer Schleifenbedingung zu erstellen. was ich (in Pseudo-Code) erreichen will, so etwas wie diese:
objQuery.andexpressionstart();
foreach (condition in conditions){
if (condition){
objQuery.and(conditionColumn).isequalto(X);
}
}
objQuery.expressionstop();
mein Hauptproblem ist, dass jede Bedingung, die im Innern des Ausdrucks ist eine andere Spalte ist - sonst könnte ich nur .In() verwenden. Ich habe auch zusätzliche Suchkriterien (lesen Sie ein gutes Stück) draußen, so dass es nicht außerhalb eines Ausdrucks sein kann.
WIRKLICH möchte ich nicht die warme coseyness der stark typisierten-subsonic Gebärmutter verlassen, aber ich denke in diesem Fall könnte ich auch haben ... wenn ich muss, gibt es eine Möglichkeit, zu einem Unterschall hinzuzufügen Abfrage mit einer Hand getippt Zustand so alle anderen Code in der Abfrage (jetzt eine Menge von Business-Logik wohnhaft in Unterschall Land) nicht ändern, ich muss
Wie immer, vielen dank für jede Hilfe prost
Ich habe ein Problem in der Tatsache, dass ich mehr als einen "Ausdruck" habe – Doug
mein Verständnis ist, dass, wenn Sie "AndExpression" verwenden wird alles gruppiert, bis die nächste "AndExpression" aufgerufen wird. (erster Ausdruck und (zweiter Ausdruck und (dritter Ausdruck))) wobei jeder Ausdruck eine beliebige Anzahl von Kriterien enthalten kann. Probieren Sie es aus und überprüfen Sie, was SQL generiert wird. – ptutt
Das obige funktioniert super! ... tolle Arbeit, danke :) – Doug