有趣的问题..
我有一个具有状态字段的类型。为了方便和顺序,我想在实体类型中定义此状态的枚举:
public class User
{
public enum Statuses
{
Active,
Suspended
}
public int ID { get; set; }
public Statuses Status { get; set; }
}
由于某种原因,Status属性未映射到数据库。
现在有趣的一点 - 如果我从用户那里获取枚举定义,那么它就被映射到数据库了!
我知道快速的答案是将它留在课堂外,但这需要我给枚举更长的名字UserStatuses或类似的东西,因为现在它不在用户范围内。
有没有人遇到过这个问题?在我开始妥协之前是否有解决方案?
谢谢!
答案 0 :(得分:0)
EF5仅支持在名称空间下定义的枚举。它不支持在类中定义的枚举或嵌套在另一个枚举中的枚举。
我不知道它是否是“最正确”的做法,但我更喜欢将任何枚举保存在自己的命名空间(“枚举”或类似的东西)中,并为它们提供更有意义的名称(即:UserStatus) 。一个名为“状态”的枚举过于通用,一旦你有六个枚举定义浮动,就会变得混乱,当你进一步进入应用程序并且必须向其他实体添加状态枚举时,也可能导致命名空间冲突。 / p>