【发布时间】:2011-06-23 11:10:30
【问题描述】:
我正在开发一个我想在其中实现分页的应用程序。我有以下实现分离标准的类 -
public class PagedData : DetachedCriteria
{
public PagedData(int pageIndex, int pageSize) : base(typeof(mytype))
{
AddOrder(Order.Asc("myId"));
var subquery = DetachedCriteria.For(typeof(mytype2))
.SetProjection(Projections.Property("mytype.myId"));
Add(Subqueries.PropertyIn("myId", subquery));
SetFirstResult((pageIndex - 1) * pageSize);
SetMaxResults(pageSize);
}
}
这很好用——它准确地返回了我试图检索的数据。我遇到的问题是获取页面导航的总行数。因为我在我的分离标准中使用了 setfirstresults 和 setmaxresults,所以行数总是被限制在传入的 pageSize 变量中。
我的问题是:如何获得总行数?我应该只创建另一个分离标准来计算行数吗?如果是这样,那会增加到数据库的往返行程吗?我最好不使用 detacedcriteria 并使用直接条件查询,然后我可以在其中使用期货?或者我可以以某种方式将期货与我目前正在做的事情一起使用。
如果需要任何进一步的信息,请告诉我。
谢谢
【问题讨论】:
标签: c# nhibernate