簡體   English   中英

如何在C#Winforms中使用MVP模式將多個表中的數據顯示到我的視圖中?

[英]How to display data from more than one table to my view using MVP pattern in C# winforms?

如何在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類,它們具有自己的getter和setter以及代表數據庫中表的其他詳細信息。

然后,我還為“水果”和“顏色”創建了兩個模型。

因此,如果我想創建一個顯示有關Color記錄的視圖,則可以使用為Color創建的模型來檢索顏色的集合(例如List<Color> )。 如果我使用DataGridView來顯示該記錄,則會得到類似以下的內容:

    +-----+--------+  
    | Id  | Name   |  
    +-----+--------+  
    | 70  | Red    |  
    | 80  | Orange |  
    | 90  | Violet |  
    +-----+--------+  

對於Fruit記錄,我可以使用與上面相同的方法,但是我需要顯示顏色名稱而不是顏色ID,如下所示:(

    +-----+--------+----------+  
    | Id  | Name   | Color    |  
    +-----+--------+----------+  
    | 10  | Apple  | Red      |  
    | 20  | Orange | Orange   |  
    | 30  | Grapes | Violet   |  
    +-----+--------+----------+  

我想我可以為其創建另一個類並將其命名為“ FruitColor”,然后為其賦予與上面的Fruit類相同的屬性,但是我沒有顏色id屬性,而是將其替換為顏色名稱...但是我我不太確定這是否是MVP中正確的做法。 我以為我應該問你們如何正確做的任何提示...

我沒有在我的項目中使用ORM,因為我想了解如何手動進行操作...但是我也希望與使用ORM有關的任何幫助。 我也剛剛在3周前開始了解MVP,所以我真的很希望能得到任何幫助。

檢索Fruit ,應使用SQL中的JOIN來查詢顏色:

RETRIEVE f.*, c.name as color_name
FROM Fruits f
INNER JOIN Colors c
ON f.Color_Id = c.Id

然后,將可能已經完成的結果轉換為Fruit 但是,這將需要您擴展Fruit類,使其具有顏色name變量的string屬性,或者僅添加包含整體顏色的屬性:

public class Fruit
{
   public int Id { get; set; }
   public string Name { get; set; }
   public Color Color { get; set; }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM