LINQ do NHibernate usuwa nawias w przypadkach, gdy klauzula:Grupowanie stan jest spadła
session.Query<MyEntity>().Where(x => (x.MyProp1 < end && x.MyProp1 > start) ||
(x.MyProp2 < end && x.MyProp2 > start));
Wynika to w poniższym zapytaniu (nota brakujący nawias):
select <columns> from MY_ENTITY where MY_PROP1 < :p0 and MY_PROP1 > :p1 or
MY_PROP2 < :p2 and MY_PROP2 > :p3;
jest to ogromny problem , ponieważ znacząco zmienia warunek zapytania.
Czy jest to znany problem, czy też robię coś nie tak?
Hmm, wygląda na to, że znalazłeś błąd, możesz podzielić zapytanie na dwie części, a później je scalić, ale to powinno zadziałać. – mfeineis
Czy zapytanie właściwie nie działa poprawnie po uruchomieniu? Nie mogę być tego pewien, ale możliwe jest, że ze względu na kolejność operacji nawias nie jest wymagany. Jest to co najmniej wykonalne. – Servy
@Servy: Przybiłeś to. [I ma pierwszeństwo przed LUB] (http://docs.oracle.com/html/A95915_01/sqopr.htm#i1004611). Proszę zaksięguj to jako odpowiedź, abym mógł ją zaakceptować. –