У меня проблема.У меня есть люди и кошки.У каждого персонажа есть несколько кошек (в кошках есть внешний ключ, который указывает на первичный ключ в персонах).У каждого кота свой возраст.Я хочу выбрать людей, у которых есть "старые" кошки.Я хочу ВСЕХ Кошек этих людей, а не только "Старые" Кошки.Мне нужно сделать это с помощью синтаксиса QueryOver.
В T-SQL это будет что-то вроде:
SELECT P.*, C.*
FROM Persons P
LEFT JOIN Cats C
ON P.Id = C.OwnerId
WHERE EXISTS (
SELECT 1
FROM Cats C2
WHERE P.Id = C2.OwnerId AND C2.Age > 5)
Я знаю, что должен использовать подзапросы, и я мог легко с"старый" синтаксис nhibernate (Criteria / DetachedCriteria), но я не могу сделать это в синтаксисе QueryOver.
Я не хочу условия "IN".Мой первичный ключ - сложный ключ, поэтому я не могу сделать это с IN.
var persons = session.QueryOver<Person>.WithSubquery.WhereExists( ??? );