2015-12-24 36 views
-1

在我的項目,我需要這樣的表和列的3名:是使用最好的枚舉來存儲表名和列名 -

Tables :User , News , Roles 
Columns : Date,Title,Id 

,並存儲該列名和表名的另一個表。 是最好用枚舉的STOR這個值是這樣的:

public enum TableName 
{ 
    News, 
    Role, 
    User 
} 
public enum ColumnName 
{ 
    Date, 
    Id, 
    Title 
} 

,或者創建一個兩個錶店呢?

哪一個更好?

我需要表格和列名稱在下拉菜單中顯示並將其保存在數據庫中。我使用Code First。我不使用Reflection顯示列,因爲我不顯示所有列給用戶。

我需要這個保存OrderSetting例如設置訂單News表像這樣:

Table :'News' , Columns :'Date', Type:`Desc` 

應該始終對每個表中的行。

+0

行對於代碼首先POCO你的表名應該是類名和列在類的屬性。枚舉在你的場景中不明智。反映類以獲取屬性,如果需要:http://stackoverflow.com/questions/737151/how-to-get-the-list-of-properties-of-a-class –

+0

它完全取決於什麼是功能你會達到,你的數據庫和應用程序的大小是多少,因爲如果它只是一個簡單的預先定義的下拉值而不是你的應用程序的其他模塊將取決於。 – Shaharyar

+0

@MurrayFoxcroft謝謝,你有什麼想法做到這一點。我需要'OrderSetting Data'的這個表名和列名 –

回答

1

沿着成才的

public class MyTable 
    { 
     public string TableName { get; set; } 
     public List<string> Columns { get; set; } 

     public MyTable() 
     { 
      Columns = new List<string>(); 
     } 

     public void PopulateFromType(Type t) 
     { 
      TableName = t.Name; 

      foreach (var prop in t.GetProperties()) 
      { 
       Columns.Add(prop.Name); 
      } 
     } 
    } 

    public class Foo 
    { 
     public int A { get; set; } 
     public string B { get; set; } 
    } 

    public class Processor 
    { 
     public void AddFoo() 
     { 
      var myTable = new MyTable(); 
      myTable.PopulateFromType(typeof(Foo)); 
     } 
    }