我发现使用nhibernate进行分页非常有趣的教程 http://blogs.planetcloud.co.uk/mygreatdiscovery/post/Simple-paging-with-ASPNET-MVC-and-NHibernate.aspx
如何在没有未来的情况下重写这些public PagedList<PSScript> GetPaged(int pageIndex, int pageSize)
查询(主要原因是我应该为其他数据库提供工作版本,例如firbird等)。
或者如果你有其他一些有趣的分页教程可以分享,请做。
由于
答案 0 :(得分:3)
您只需创建没有Futures
的查询即可。唯一的区别是您将有两次往返数据库而不是一次。我不认为这会在您的方案中出现问题。
这样的事情应该有效:
using (ISession session = NHibernateHelper.OpenSession())
{
var rowCount = session.CreateCriteria<PSScript>()
.SetProjection(Projections.RowCount())
.UniqueResult<Int32>();
var results = session.CreateCriteria<PSScript>()
.SetFirstResult((pageIndex - 1) * pageSize)
.SetMaxResults(pageSize)
.ToList<PSScript>();
return new PagedList<PSScript>(results, pageSize, pageSize, rowCount);
}