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。唯一の違いは、データベースへのラウンドトリップが 1 回ではなく 2 回になることです。これがあなたのシナリオでは問題になるとは思いません。

このようなものが動作するはずです:

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 に答える