Работал!!!!!!!!! :-)
я проблема. У меня есть люди и кошки. У каждого персонажа есть несколько кошек (в кошках есть внешний ключ, который указывает на первичный ключ в персонах). У каждого кота свой возраст. Я хочу выбрать людей, у которых есть "старые" кошки. Я хочу ВСЕХ Кошек этих людей, а не только "Старые" Кошки. Мне нужно сделать это с помощью синтаксиса 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.
var persons = session.QueryOver<Person>.WithSubquery.WhereExists( ??? );