Mon modèle d'objet est le suivant:Nhibernate API critères pour un grand nombre à plusieurs
article a beaucoup de balises et une marque peut appartenir à plusieurs articles
Je voudrais exécuter la requête suivante à l'aide de critères .
SELECT * FROM Item item
WHERE item.Id in (Select it.ItemId from dbo.ItemToTags it where it.Tag_id = 'ONE')
AND item.Id in (Select it.ItemId from dbo.ItemToTags it where it.Tag_id = 'TWO')
Signification Je voudrais donner une collection d'étiquettes possibles et fournir tous les éléments qui ont tous ces tags:
J'ai essayé ce qui suit, mais j'obtenir pas:
CreateCriteria<Item>().CreateAlias("Tags", "Tags");
if (AndQuery) {
foreach(var tag in Tags)
{
criteria.Add(Subqueries.PropertyEq("Tags.Id", DetachedCriteria.For<Tag>().Add(Restrictions.Eq("Id", tag)) .SetProjection(Projections.Property("Id"))));
}
}
Merci pour la réponse mais cela me donnerait la relation OR. Je suis à la recherche d'une RELeation ET! C'est pourquoi ma requête contient deux sous-sélections et pas et en! – Patrick