我首先使用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
}
发布于 2012-03-13 22:50:34
EF 4.3中仍不支持枚举。是否在属性中指定另一个DataType没有区别。
在分析类和生成表时,枚举被EF完全忽略。
虽然EF5.0承诺支持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; }
}
}
发布于 2012-03-13 22:51:07
版本5.0之前的EF中的Enums are not supported。所以,你可能已经达到了这个极限。
https://stackoverflow.com/questions/9693386
复制相似问题