我首先使用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
}
答案 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)
Enums are not supported直到5.0版。所以,你可能只是达到了这个限制。