【问题标题】:Adding conditions to outer joins with NHibernate ICriteria/QueryOver query使用 NHibernate ICriteria/QueryOver 查询向外部联接添加条件
【发布时间】:2011-03-23 19:48:42
【问题描述】:
【问题讨论】:
标签:
nhibernate
join
fluent-nhibernate
queryover
【解决方案1】:
你可能很久以前就知道了。解决方法是在 JoinAlias 方法中添加 ICriteria 参数,如下所示:
Party aliasParty = null;
Party aliasPartyFrom = null;
var parties = QueryOver.Of<Party>(() => aliasParty)
.Left.JoinAlias(
() => aliasParty.AccountabilitiesFrom,
() => aliasAccFrom,
Restrictions.On(() => aliasAccFrom.TimeTo).IsNull)
我对 aliasAccFrom 有限制,我希望 TimeTo 在最后一行代码中为空。
【解决方案3】:
我通过查询尝试了以下查询
SystemUser systemUser= null;
SurveyRequests SurveyRequests = null;
var Query2 = Session.QueryOver<SystemUser>(() => systemUser)
.Left.JoinAlias(() => systemUser.SurveyRequests,
() => surveyRequest,
Restrictions.On(()=>surveyRequest.Survey.Id).IsIn(new object []{surveyID }))