2012-03-13 5 views
0

最初にEF4.3.1とMVC4コードを使用しています。 1つの列を除いてデータベースが作成されており、エラーは発生しません。 なぜこの列は作成されませんか? 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では、列挙型はまだサポートされていません。属性に別のデータ型を指定するかどうかは異なりません。

クラスを解析してテーブルを生成するときに、列挙型は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; } 
    } 
} 
2

Enums are not supported(バージョン5.0まで)。だから、あなたはたぶんこの限界にぶつかっているでしょう。

関連する問題