2009-05-07 4 views
6

Возьмите этот запрос в качестве примера:Использование NHibernate для запроса с NOT IN в ИНЕКЕ

select * from publisher 
where id not in (
    select publisher_id from record 
    where year = 2008 and month = 4 
) 

Может кто-нибудь поможет мне о том, как я мог бы построить и запустить этот запрос с помощью NHibernate? Предположим, что у меня есть 2 класса: Publisher и Record.

Благодаря

+0

с использованием критериев или HQL? –

+0

с использованием критериев. Спасибо – rguerreiro

+0

Какова связь между издателем и записью в ваших классах моделей? –

ответ

7

Попробуйте это:

DetachedCriteria c = DetachedCriteria.For<Record>() 
    .SetProjection(Projections.Property("Publisher")) 
    .Add(Restrictions.Eq("Year", 2008)) 
    .Add(Restrictions.Eq("Month", 4)); 
session.CreateCriteria(typeof(Publisher)) 
    .Add(Subqueries.PropertyNotIn("Id", c)) 
    .List();