0

これを理解しようとしています。

私は食品と呼ばれる主要なクラスを持っています。

Food から継承する複数のクラスがあります: Pizza、Sandwich、Meals など...

Code First Approach を使用してデータベースを作成しました。データベースには、ピザ、サンドイッチ、食事のテーブルがあります。

私のホームページでは、私が持っている各食品の上位 5 を表示する必要がありますが、食品というテーブルを作成したくありません。では、上位 5 つの食品のリストを取得するにはどうすればよいですか (DBSet クラスから food.ToList() にアクセスすることはできません。データベース テーブルを作成する必要があるためです。これらの値を複数取得するにはどうすればよいですか? Class Foods のオブジェクトを作成し、それらを C# コードのビューに渡しますか?

トップ 5 のピザ、トップ 5 のサンウィッチ、トップ 5 の食事のこれらの値をすべて取得したら、モデル「食​​品」をレン​​ダリングし、それらのクラス間で共通のプロパティを表示する部分ビューにそれらを渡す必要があります (つまり、食品に含まれるものであり、ピザや食事に含まれる単一のものの特徴ではありません)など...

これは、mvc がどのように機能するかの概念を理解しようとしているため重要です。これは、2 つのモデルのクラスを作成し、すべての投稿で見られるように、ピザとサンドイッチを一緒に言うことができるこのモデルを受け入れるビューを作成することとは異なります。オンライン。

4

1 に答える 1

0

このケースは、リポジトリパターンを使用する絶好の機会のようです。このパターンを使用すると、「FoodRepository」というクラスを作成して、特定のテーブルのDbSetから読み取り、それらを親の「Food」クラスにラップして、リストとして返すことができます。このリポジトリには、「トップ5フード」などを実行するためのすべてのロジックが含まれます。コントローラはこのリポジトリを呼び出し、このリストをビューモデルに返します。次に、ビューはこれをIEnumerableに強く型付けされた部分ビューに渡し、そのリストの表示を担当します。

これは、 EFコードファーストでリポジトリパターンの使用を開始するための優れたチュートリアルです。

于 2013-02-18T20:04:06.053 に答える