アプリケーションに製品と対応するカテゴリの詳細を表示するビューがあります。表示する必要がある製品とカテゴリ情報の両方を取得するために、ビューモデルから継承しています。
public ViewResult Index(string id, int page = 1, int pagesize = 10)
{
var viewModel = new PagedProductList()
{
CurrentPageIndex = page,
PageSize = pagesize
};
viewModel.category = db.Category.First(c => c.Id == id);
viewModel.products = db.Product
.Where(i => i.Category.Id == viewModel.category.Id)
.OrderBy(i => i.Id)
.Skip((viewModel.CurrentPageIndex - 1) * viewModel.PageSize)
.Take(viewModel.PageSize)
.Include(p => p.ProductAttributeValues);
return View(viewModel);
}
ご覧のとおり、ビューモデルのカテゴリ ID をビューモデルの products where 句に渡しています。
質問 1:製品コードを別の子アクションに移動し、Html.Action を使用して親ビューからカテゴリ モデル ID を渡して親ビューからアクションを呼び出した場合、パフォーマンスやその他の点でこれがうまくいくでしょうか。
質問 2:カテゴリ情報と対応する製品の両方を取得するための他の良い方法はありますか? 商品のページングができないため、db.Category.Include(“Products”) のようなものは使用できません。