1

C# winforms で MVP パターンを使用して、複数のテーブルからビューにデータを表示するにはどうすればよいですか?

次のテーブルがあるとします。

  1. フルーツ
  2. 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 について学び始めたばかりなので、何か助けてくれることを本当に望んでいます。

4

1 に答える 1