未创建Asp.Net MVC代码第一列

时间:2012-03-13 22:46:30

标签: asp.net-mvc entity-framework-4

我首先使用EF4.3.1和MVC4代码。 我的数据库正在创建,除了一列,没有给出错误。 为什么不创建此列? 我应该使用EnumDataType属性(它似乎什么都不做)?

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 个答案:

答案 0 :(得分:2)

EF 4.3中仍然不支持枚举。是否在属性中指定另一个DataType没有区别。

在分析类和生成表时,EF完全忽略了枚举。

对于EF 5.0承诺支持{p> Enum,但最后!

现在使用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; }
    }
}

答案 1 :(得分:2)

EF中的

Enums are not supported直到5.0版。所以,你可能只是达到了这个限制。