NHibernate,其中子查询等于/GreaterThan/LessThan
我想知道如何根据NHibernate中子查询的值限制外部查询中的结果 sql将类似于:NHibernate,其中子查询等于/GreaterThan/LessThan,nhibernate,Nhibernate,我想知道如何根据NHibernate中子查询的值限制外部查询中的结果 sql将类似于: SELECT p.* FROM ParentTable p WHERE (SELECT COUNT(c.Id) FROM ChildTable c WHERE c.ParentId = p.Id) > n 我已经做到了: Parent parentAlias = null; Child childAlias = null; var query = Session.QueryOv
SELECT
p.*
FROM
ParentTable p
WHERE
(SELECT COUNT(c.Id) FROM ChildTable c WHERE c.ParentId = p.Id) > n
我已经做到了:
Parent parentAlias = null;
Child childAlias = null;
var query = Session.QueryOver(() => parentAlias);
var subquery = Session.QueryOver(() => childAlias).Where(childAlias.Parent.Id == parentAlias.Id);
query.WithSubquery...
但似乎不能再进一步了——除非我遗漏了一些明显的东西?我已经解决了。下面是一个伪示例:
Parent parentAlias = null;
var subquery = QueryOver.Of<Child>().Where(child.Parent.Id == parentAlias.Id);
var query = session.QueryOver(() => parentAlias)
.WithSubquery.WhereExists(subquery)
.List();
outerQuery.WithSubquery.WhereValue(int).Lt(subquery);
将像在SQL中一样执行
SELECT
*
FROM
OuterTable
WHERE 1 < (SELECT COUNT(*) FROM InnerTable WHERE ...)
嗨,菲罗-首先很抱歉延迟回复。第二,这很有帮助,但它不能完全回答我的问题。我需要根据子查询的行数限制外部查询中的结果。。