2009-08-27 8 views
2

sous_requête Je vais essayer de ne présenter la partie principale du problème, parce que toute la situation est beaucoup plus compliquée - je suis incapable de réaliser ce qui suit avec DetachedCriteriaNhibernate DetachedCriteria gauche OUTER JOIN sur

SELECT * 
FROM User 
LEFT OUTER JOIN GroupItem 
ON User.ID = GroupItem.UserID 
AND _groupItemRestrictions_ 

Il peut être plusieurs GroupDefinitions, l'Utilisateur peut appartenir à plusieurs GroupItems qui appartiennent chacun à sa propre GroupDefinition. Pour une raison compliquée avec le comportement du groupe radiomessagerie/tri et (à plusieurs niveaux), je ne peux pas obtenir un comportement d'échange approprié avec cette requête:

SELECT * 
FROM User 
LEFT OUTER JOIN GroupItem 
ON User.ID = GroupItem.UserID 
WHERE _groupItemRestrictions_ 

Une requête similaire à la seconde est produite de cette façon:

var criteria = DetachedCriteria.For<User>() 
... 
GroupItem groupItem = null; 
criteria.CreateAlias(() => groupItemAlias,() => groupItem, 
               JoinType.LeftOuterJoin); 
criteria.Add(Restrictions.Or(...)); 
... 

Est-il possible de créer la première requête avec DetachedCriteria?

Merci!

Répondre

Questions connexes