我的模型如下:
namespace MvcApplication1.Models
{
public enum Sex { Male, Female }
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
[Required(ErrorMessage = "Please select either Female or Male.")]
public Sex? Sex { get; set; }
}
}
我使用EFCodeFirst成功生成了一个数据库。不幸的是,在数据库中只创建了Id
和Name
列,并且没有生成Sex
列。
如何使EFCodeFirst为类型为enum的属性生成int类型的列?
答案 0 :(得分:2)
从EF CTP5开始,仍然不支持枚举。这是EF团队正在努力的事情,我们很可能会在RTM上获得它。目前,您必须使用int?
Sex
属性。
从模型创建数据库时,EF Code First将忽略任何非基本类型的属性。
答案 1 :(得分:1)
您可以使用以下简单的解决方法:
http://daniel.wertheim.se/2010/06/09/dealing-with-enumerations-and-entity-framework-4-code-first/
..但是一旦EF支持枚举,你可能需要做一些重构。