1

Nhibernate 3.0を使用しており、サイトにページングを実装する必要があります。基本的に、関連する製品のコレクションを持つProductCategoryがあります。これまでのところ、これは機能します

var result = Session.QueryOver<TEntity>().TransformUsing(Transformers.DistinctRootEntity)
            .Where(category => category.CategoryId == criteria.CategoryId)
            .Fetch(category => category.Products).Eager
            .Take(pageSize)
            .Skip((pageIndex - 1)*pageSize)
            .Future<TEntity>();

これにより、要求しているカテゴリと、渡されたページサイズとページインデックスに基づいて正しくページングされた子製品が返されます。

私が今やりたいのは、実際に商品の合計行数を取得することです。たとえば、たとえば5つの商品しか返さない場合でも、合計で100の商品があることを知る必要があります。

どうもありがとう

4

1 に答える 1

5

Product横から行って。を使用することにより、別のクエリでそれを行う必要があります.RowCount()

このようなもの(あなたProductCategoryプロパティを持っている場合):

int count = session.QueryOver<Product>()
    .Where(x => x.Category.Id == categoryId)
    .RowCount();

ここでは、カウントを取得するためのさらにいくつかの方法を見つけることができます。NHibernate QueryOver APIを使用して行カウントを取得するにはどうすればよいですか?

あなたに役立つかもしれない別のブログ投稿:
NHibernate3.0QueryOver-データベースレベルでの検索とページング

于 2012-07-05T12:51:04.530 に答える