1

好笑的问题。。

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

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

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

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

现在有趣的是 - 如果我从 User 中取出枚举定义,那么它就会映射到数据库!

我知道快速的答案是将它留在课堂之外,但这将需要我给枚举一个更长的名称 UserStatuses 或类似的名称,因为现在它不在 User 内部。

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

谢谢!

4

1 回答 1

0

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

我不知道这是否是“最正确”的做事方式,但我更喜欢将任何枚举保留在自己的命名空间(“枚举”或类似名称)中,并给它们起更有意义的名称(即:UserStatus)。一个名为“Statuses”的枚举太通用了,一旦你有六个枚举定义浮动就会变得混乱,并且当你进一步进入应用程序并且必须向其他实体添加状态枚举时,还可能导致命名空间冲突。

于 2012-11-02T05:28:39.783 回答