我正在尝试使用Code First方法创建模型。 我想知道是否可以将Enum属性映射到数据库中的varchar列。 我知道你可以用byte,small,int,long来做。
这是一个旧数据库的项目,它有许多带约束的列。将此结构映射到枚举值会很好。
由于
答案 0 :(得分:2)
不,不可能。 2011年6月EF中的枚举CTP只能用于.NET平台本身支持的枚举,而.NET仅支持除char之外的整数类型的枚举。这意味着只支持byte,sbyte,short,ushort,int,uint,long或ulong。关于EF中的映射也是如此。 EF只能将枚举映射到整数类型的列。
您可以查看有关here的更多信息。它还包含EF for enum支持的内部类型的描述:
与CLR枚举类似,EF枚举的基础类型为1 Edm.SByte,Edm.Byte,Edm.Int16,Edm.Int32或Edm.Int64 with 如果没有,则Edm.Int32是默认的底层类型 指定。
您还可以查看该文章下的评论。