1

我找到了一些关于如何使用 NHibernate 进行分页的问题和答案,我的代码如下:

public virtual List<T> GetPageResults(int pageIndex, int pageSize)
        {
            using (var session = SessionFactory.OpenSession())
            {
                var returnVal =
                    session.CreateCriteria<T>().SetFirstResult(pageIndex).SetMaxResults(pageSize).Future
                        <T>().OrderByDescending(x => x.Id).ToList();

                return returnVal;
            }
        }

如您所见,我正在使用 OrderByDescending 进行分页,我想先显示最后一项。这是这样做的好方法吗?

另外,有没有我可以使用的框架可以轻松地为我提供分页,我看到很多包,但除了 SO 问题之外,它们中的大多数几乎没有文档。

谢谢。

4

1 回答 1

1

您可以使用 QueryOver 编写此查询:

session.QueryOver<T>()
  .OrderBy(t => t.Property).Desc
  .Skip(pageIndex).Take(pageSize)
  .List();
于 2012-04-20T21:54:29.947 回答