2
我正在动态构建一个需要实现分页的nhibernate投影查询。喜欢的东西...集合分页投影nhibernate查询的总计结果
var projections = Projections.ProjectionList();
foreach (var p in projection.Projections)
{
IProjection newProjection = null;
switch (p.AggregateFunc)
{
case AggregateFuncTypeEnum.GroupProperty:
newProjection = Projections.GroupProperty(p.Path);
break;
case AggregateFuncTypeEnum.Sum:
newProjection = Projections.Sum(p.Path);
break;
default:
newProjection = Projections.Property(p.Path);
break;
}
projections.Add(newProjection, p.Name);
}
criteria.SetProjection(projections).SetResultTransformer(new AliasToBeanResultTransformer(projectionType));
我能得到前15分的结果,像这样
criteria.SetFirstResult(0);
criteria.SetMaxResults(15);
var results = criteria.List();
但我也需要发送另一个查询来获取的记录总数,但到目前为止,我已经失败弄清楚这一点。该投影仍然需要应用,即如果结果按'代码'分组并且'成本'之和那么100条记录可能返回20行,并且这是我感兴趣的20条。
我该如何获得将返回的记录总数?由于
这似乎仍然返回例如计数100而不是由投影返回的20行(例如,按'代码'分组并且总和为'成本') – Adam
'rowcount.SetProjection(Projections.Count(goupprojections))'应该做imo,我会检查至少在 – Firo
看起来应该但不适合我。使用你的想法,我可以选择一个属性来使用CountDistinct进行分组,但这只接受一个属性 – Adam