【发布时间】:2011-10-20 17:50:52
【问题描述】:
我正在动态构建一个需要实现分页的休眠投影查询。有点像...
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 行。
如何获取将返回的记录总数?谢谢
【问题讨论】:
标签: c# sql-server nhibernate