2009-05-07 32 views
6

Hãy truy vấn này là một ví dụ:Sử dụng NHibernate để truy vấn với NOT IN trong mệnh đề WHERE

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

bất cứ ai có thể giúp tôi về cách tôi có thể xây dựng và chạy truy vấn này sử dụng NHibernate? Giả sử rằng tôi có 2 lớp: PublisherRecord.

Cảm ơn

+0

sử dụng Tiêu chuẩn hoặc HQL? –

+0

sử dụng Tiêu chí. Cảm ơn – rguerreiro

+0

Kết nối giữa nhà xuất bản và bản ghi trong các lớp học của bạn là gì? –

Trả lời

7

Hãy thử điều này:

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(); 
Các vấn đề liên quan