LINQ to NHibernate rimuove parentesi nella clausola where:raggruppamento in condizione è che è caduto
session.Query<MyEntity>().Where(x => (x.MyProp1 < end && x.MyProp1 > start) ||
(x.MyProp2 < end && x.MyProp2 > start));
Il risultato è la seguente query (si noti la parentesi mancante):
select <columns> from MY_ENTITY where MY_PROP1 < :p0 and MY_PROP1 > :p1 or
MY_PROP2 < :p2 and MY_PROP2 > :p3;
Questo è un problema enorme , perché modifica significativamente la condizione della query.
Si tratta di un problema noto o sto facendo qualcosa di sbagliato?
Hmm, sembra che tu abbia trovato un bug, potresti dividere la query in due e in seguito unirle, ma comunque dovrebbe funzionare – mfeineis
La query non viene effettivamente eseguita correttamente quando viene eseguita? Non posso esserne sicuro, ma è possibile che a causa dell'ordine delle operazioni le parentesi non siano richieste. Questo è almeno fattibile. – Servy
@Servy: lo hai inchiodato. [E ha la precedenza su OR] (http://docs.oracle.com/html/A95915_01/sqopr.htm#i1004611). Si prega di postare come risposta in modo che io possa accettarlo. –