2012-01-25 93 views
1

我有一個狀態字段,可以保持下面的值的數據庫:使用枚舉或字典?

  • 0 Registrado
  • 1 ACTIVO
  • 2 Finalizado
  • 3 Anticipado
  • 4 Reestructurado

當然,我只是將數字保存在數據庫中的tinyint數據類型中。然後我需要查詢該表,但GUI必須顯示字符串值而不是數值。

實現它的最好方法是什麼?我應該使用Enum數據類型還是字典?使用其中一個的優點是什麼?

此外,結果將在DataGrid

+0

字典看起來極像是串[]語義現在... –

+0

如果使用實體框架,我會用一個實體,沒有枚舉,也沒有字典。這樣如果表格中有新的條目,則不需要重新編譯任何東西... –

+0

請不要在「C#」等前加上標題。這就是標籤的用途。 –

回答

1

的辦法我想借此顯示是

  • 地圖的tinyint值到enum
  • 創建靜態Dictionary<TheEnumType, string>其值映射到用戶字符串

例如

public enum Names { 
    Registrado = 0, 
    Activo = 1, 
    Finalizado = 2, 
    Anticipado = 3, 
    Reestructurado = 4 
} 

現在可以將DB值和相應的枚舉

int theDbValue = ...; 
Names name = (Names)theDbValue; 

構建的名稱之間的映射之間輕鬆轉換,現在有Dictionary<Names, string>輕鬆完成。

var map = new Dictionary<Names, string>(); 
map[Names.Registrado] = "..."; 
map[Names.Activo] = "..."; 
// etc ...