EF5代码首次枚举支持 - 定义实体内部的枚举

时间:2012-11-02 03:23:12

标签: .net entity-framework enums code-first

有趣的问题..

我有一个具有状态字段的类型。为了方便和顺序,我想在实体类型中定义此状态的枚举:

public class User
{
  public enum Statuses
  {
     Active,
     Suspended
  }

  public int ID { get; set; }
  public Statuses Status { get; set; }
}

由于某种原因,Status属性未映射到数据库。

现在有趣的一点 - 如果我从用户那里获取枚举定义,那么它就被映射到数据库了!

我知道快速的答案是将它留在课堂外,但这需要我给枚举更长的名字UserStatuses或类似的东西,因为现在它不在用户范围内。

有没有人遇到过这个问题?在我开始妥协之前是否有解决方案?

谢谢!

1 个答案:

答案 0 :(得分:0)

EF5仅支持在名称空间下定义的枚举。它不支持在类中定义的枚举或嵌套在另一个枚举中的枚举。

我不知道它是否是“最正确”的做法,但我更喜欢将任何枚举保存在自己的命名空间(“枚举”或类似的东西)中,并为它们提供更有意义的名称(即:UserStatus) 。一个名为“状态”的枚举过于通用,一旦你有六个枚举定义浮动,就会变得混乱,当你进一步进入应用程序并且必须向其他实体添加状态枚举时,也可能导致命名空间冲突。 / p>