2012-03-13 46 views
0

我首先使用EF4.3.1和MVC4代碼。 我的數據庫正在創建,除了一列,並沒有給出錯誤。 爲什麼不創建這個列? 我應該使用EnumDataType屬性嗎(它似乎沒有做任何事情)?Asp.Net MVC代碼第一列未創建

public class Setting 
{ 
    public Guid SettingId { get; set; } 
    public string Key { get; set; } 
    public string Value { get; set; } 

    [Column("DataType", TypeName = "varchar")] 
    public SettingDataType DataType { get; set; } 
    } 


    public enum SettingDataType 
    { 
     [Description("String")] 
     text, 
     [Description("Integer")] 
     integer, 
     [Description("Boolean")] 
     boolean 
    } 

回答

2

EF 4.3中仍然不支持枚舉。無論您是否在屬性中指定另一個DataType,都沒有什麼不同。

當分析類和生成表時,枚舉完全被EF忽略。

Enum支持承諾EF 5.0,但...終於!

現在使用int屬性代替,並添加另一個屬性,將int轉換爲enum值。另外,爲了確保下一個EF版本沒有任何問題,請添加Ignore關鍵字。

public class Setting 
{ 
    public Guid SettingId { get; set; } 
    public string Key { get; set; } 
    public string Value { get; set; } 

    [Column("DataType", TypeName = "varchar")] 
    public int DataTypeInt { get; set; } 

    [Ignore] 
    public SettingDataType DataType 
    { 
     get { return (SettingDataType)this.DataTypeInt; } 
     set { return this.DataTypeInt = (int)value; } 
    } 
}