Работал!!!!!!!!! :-)

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

Ответы на вопрос(1)

Ваш ответ на вопрос