2009-05-07 7 views
6

Prenez cette requête à titre d'exemple:Utilisation de NHibernate pour interroger NOT IN dans la clause WHERE

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

Quelqu'un peut-il me aider sur la façon dont je pourrais construire et exécuter cette requête en utilisant NHibernate? Supposons que j'ai 2 classes: Publisher et Record.

Merci

+0

en utilisant des critères ou HQL? –

+0

en utilisant les critères. Merci – rguerreiro

+0

Quel est le lien entre l'éditeur et l'enregistrement dans vos classes de modèles? –

Répondre

7

Essayez ceci:

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(); 
Questions connexes