似乎无法找到解决方案。我有一个QueryOver,其中包含一个分组。我想分页结果,但是,我似乎无法找到一种方法来获得总行数。
var companies = session.QueryOver<Company>
.SelectList(list =>
list
.SelectGroup(x=> x.Domain).WithAlias(() => item.Text)
.SelectCount(x=> x.Domain).WithAlias(() => item.Total));
companies.TransformUsing(Transformers.AliasToBean<ItemCount>());
var totalRows = companies.ToRowCountQuery();
问题在于&#34; ToRowCountQuery()&#34;删除分组。如果我做了
var list = companies.List<ItemCount>();
这会产生以下SQL
SELECT TOP (20 /* @p1 */) this_.Domain as y0_,
count(this_.Domain) as y1_
FROM [Company] this_
GROUP BY this_.Domain
ORDER BY y1_ desc;
我之后的内容
select COUNT(*)
from (SELECT this_.Domain as y0_,
count(this_.Domain) as y1_
FROM [Company] this_
GROUP BY this_.Domain) g
我在互联网上搜索过,甚至无法找到满足我需要的东西。
答案 0 :(得分:0)
我在SO上已经回答了几次,但是无论如何,nhibernate不支持from子句中的嵌套选择。
嵌套选择仅在某些条件下的from和where中受支持,至少QueryOver
没有linq提供者所具有的那么多限制。