C# winforms で MVP パターンを使用して、複数のテーブルからビューにデータを表示するにはどうすればよいですか?
次のテーブルがあるとします。
- フルーツ
色
Table definition: +----------+ | Fruit | +----------+ | Id | | Name | | Color_Id | +----------+ |∞ | |1 +----------+ | Color | +----------+ | Id | | Name | +----------+ Table contents: Fruits +-----+--------+----------+ | Id | Name | Color_Id | +-----+--------+----------+ | 10 | Apple | 70 | | 20 | Orange | 80 | | 30 | Grapes | 90 | +-----+--------+----------+ Colors +-----+--------+ | Id | Name | +-----+--------+ | 70 | Red | | 80 | Orange | | 90 | Violet | +-----+--------+
次に、私のソリューションでは、各テーブルのクラス、つまり Fruit クラスと Color クラスを作成し、独自のゲッターとセッター、およびデータベース内のテーブルを表すその他の詳細を持っています。
次に、Fruit と Color の 2 つのモデルも作成しました。
したがって、Color に関するレコードを表示するビューを作成する場合は、Color 用に作成したモデルを使用して、色のコレクションを取得します (例: List<Color>
)。そのレコードを表示するために DataGridView を使用している場合、次のようなものが得られます。
+-----+--------+
| Id | Name |
+-----+--------+
| 70 | Red |
| 80 | Orange |
| 90 | Violet |
+-----+--------+
Fruit レコードについては、上記と同じ方法を使用できますが、次のように色 ID の代わりに色名を表示する必要があります: (DataGridView またはカスタム コントロールを使用していると仮定します)
+-----+--------+----------+
| Id | Name | Color |
+-----+--------+----------+
| 10 | Apple | Red |
| 20 | Orange | Orange |
| 30 | Grapes | Violet |
+-----+--------+----------+
別のクラスを作成して「FruitColor」という名前を付け、上記の Fruit クラスと同じプロパティを与えることができると考えましたが、色 ID プロパティを持つ代わりに、代わりに色名に置き換えます...しかし、私は 'それが MVP での正しいやり方かどうかはよくわかりません。正しいやり方のヒントを皆さんに尋ねるべきだと思いました...
手動で行う方法を理解したいので、プロジェクトにORMを使用していません...しかし、ORMの使用に関連するヘルプもいただければ幸いです。また、3 週間前に MVP について学び始めたばかりなので、何か助けてくれることを本当に望んでいます。