使用nhibernate和mvc进行分页

时间:2012-08-30 09:51:15

标签: c# asp.net-mvc nhibernate pagination

我发现使用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等)。

或者如果你有其他一些有趣的分页教程可以分享,请做。

由于

1 个答案:

答案 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);
}