データベースからすべてのアイテムを取得して特定のビューモデルに変換し、PagedList ライブラリを使用してこれらすべてのデータをページングしたくありません。
たとえば、ページで 20 個のアイテムを取得したいのですが、いつモデルをビューモデルに変換する必要があるかわかりません。
これが方法です
public ViewResult Index(ProductReviewRelationalFilterViewModel filterViewModel)
{
var items =
_productreviewService.GetItems(filterViewModel.ProductId, filterViewModel.UserId)
.Select(AutoMapper.Mapper.Map<ProductReviewListViewModel>);
var result = items.ToPagedList(filterViewModel.PageIndex, 20);
return View(result );
}
このメソッドは、すべてのアイテムを取得し、それらを ProductReviewListViewModel に変換してからページングを行います。
私が欲しいのは、dbから20個のアイテムだけを取得し、上記と同じ結果を得ることですか?
注: GetItems メソッドは IQueryable を返します
追加されたソリューション
私はGetItemsメソッドを実行し、合計アイテム数をout intパラメーターとして返します。コントローラーのアクションでは、 StaticPagedList メソッドを使用して、このリンクのようにページングを手動で作成します