我只会尝试提出问题的主要部分,因为整个情况要复杂得多 - 我无法用DetachedCriteria实现以下功能
SELECT *
FROM User
LEFT OUTER JOIN GroupItem
ON User.ID = GroupItem.UserID
AND _groupItemRestrictions_
可以有多个GroupDefinitions,User可以属于多个GroupItems,每个GroupItems都属于它自己的GroupDefinition。由于分页/排序和(多级)组行为的一些复杂原因,我无法使用此查询实现适当的分页行为:
SELECT *
FROM User
LEFT OUTER JOIN GroupItem
ON User.ID = GroupItem.UserID
WHERE _groupItemRestrictions_
以这种方式产生类似于第二个的查询:
var criteria = DetachedCriteria.For<User>()
...
GroupItem groupItem = null;
criteria.CreateAlias(() => groupItemAlias, () => groupItem,
JoinType.LeftOuterJoin);
criteria.Add(Restrictions.Or(...));
...
是否可以使用DetachedCriteria创建第一个查询?
谢谢!
答案 0 :(得分:2)
<击> 似乎没有办法用DetachedCriteria指定这样的查询,但是HQL使用'with'子句:
http://fabiomaulo.blogspot.com/2009/05/nhibernate-210-hql-with-clause.html
击><击> http://www.mail-archive.com/nhusers@googlegroups.com/msg08451.html 击>
更新:
https://nhibernate.jira.com/browse/NH-1946
此功能现已实施。感谢NH团队:)