nhibernate - 使用 NHibernate ICriteria/QueryOver 查询向外连接添加条件

标签 nhibernate join fluent-nhibernate queryover

在使用 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/

相关文章:

nhibernate - 如何使用linq-to-nhibernate查询继承类?

NHibernate:在查询中将 Guid 转换为字符串

linq(到 nHibernate): 'like in' operator

mysql - 在单个记录上连接多个记录

c# - 如何在 Linq to NHibernate 中使用按位运算符查询枚举标志

.net - ORM 工具或手动将对象构建到关系映射层

mysql - LEFT OUTER JOIN 获取 max() 并包含 NULL 值

mysql - 通过连接一列从不同的表返回两列

c# - 使用流利的 NHibernate 映射一个只读的 sql View

fluent-nhibernate - 使用 FluentNHibernate 在多列上添加唯一约束