2

我发现非常有趣的使用 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 等)

或者,如果您有其他有趣的分页教程要分享,请分享。

谢谢

4

1 回答 1

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);
}
于 2012-08-30T09:55:09.177 回答