2016-10-13 6 views
2

Comment faire une condition égale à dans une jointure externe dans Nhibernate/QueryOver/ICriteria?Conditions d'égalité dans les jointures externes avec la requête ICiriteria/QueryOver de NHibernate

La seule façon que j'ai trouvé pour comparer surveyRequest.Survey.Id avec surveyID ci-dessous est avec IsIn.

SystemUser systemUser= null; 
SurveyRequests surveyRequest = null; 

var query = Session.QueryOver<SystemUser>(() => systemUser) 
    .Left.JoinAlias(
     () => systemUser.SurveyRequests, 
     () => surveyRequest, 
     Restrictions.On(()=>surveyRequest.Survey.Id).IsIn(new object []{surveyID })) 
//             ^^^^ 

(je réutilisez une version antérieure query question.)

Répondre

3

Nous pouvons utiliser la partie .Where() de Restrictions

var query = Session.QueryOver<SystemUser>(() => systemUser) 
    .Left.JoinAlias(
     () => systemUser.SurveyRequests, 
     () => surveyRequest, 
     //Restrictions.On(()=>surveyRequest.Survey.Id).IsIn(new object []{surveyID })) 
     Restrictions.Where(()=>surveyRequest.Survey.Id == surveyID))