3

我在使用实体框架将枚举映射到数据库时遇到问题。我设置了一个超级基础类来测试我的问题:

public class Person
{
    public int PersonId { get; set; }
    public Genders Gender { get; set; }

    public enum Genders
    {
        Female, Male
    }
}

在以下情况下:

public DbSet<Person> Person { get; set; }

我正在使用 MVC 4 创建映射,我创建了一个新控制器,其中 Person 作为模型,我的上下文作为上下文。MVC 脚手架创建了控制器、视图和数据库,但是当我查看数据库时,有一个名为 Person 的表,其中只有一列 - PersonId - 但没有 Gender 列

额外信息:使用面向 .Net 4.5 的 MVC 4 并使用 Entity Framework 5.0(甚至仔细检查了 dll 版本)并连接到 (LocalDb)\V11.0。

我尝试将 Genders 更改为:

public enum Genders : Byte
{
    Female = 0, 
    Male = 1
}

正如一个答案所建议的那样,我什至尝试将 Genders 转移到一个单独的班级。

我找到了一篇MSDN 文章,它以与我拥有和工作的方式相同的方式设置类,唯一的区别是他们使用的是控制台应用程序而不是 MVC。

我错过了什么吗???

4

1 回答 1

7

您必须在任何类之外定义枚举。不要将它嵌入到类中。

于 2013-01-21T19:19:04.070 回答