在使用 QueryOver 或 ICriteria 进行查询时,是否可以在 NHibernate 中指定外部连接的附加条件?
我需要在外部连接表上添加一些额外的条件,但 NHibernate 总是将它们添加到末尾的 WHERE 子句中——这没有得到正确的行为(参见 http://weblogs.sqlteam.com/jeffs/archive/2007/05/14/criteria-on-outer-joined-tables.aspx)。
我似乎无法找到任何方法来使用 Criteria 或 QueryOver 语法...
谢谢
最佳答案
您可能很久以前就明白了这一点。解决方案是在 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 为空。
关于nhibernate - 使用 NHibernate ICriteria/QueryOver 查询向外连接添加条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5410781/