我对ASP.NET MVC 3和枚举有一点“小问题”:
我的人格模型:
namespace AcTIV.Models
{
public enum Sex { Male, Female };
public class Person
{
public int PersonID { get; set; }
public string Name { get; set; }
public Sex Sexo { get; set; }
}
}
我的初始化程序:
namespace AcTIV.DAL
{
public class AcTIVInitializer : DropCreateDatabaseAlways<AcTIVContext>
{
protected override void Seed(AcTIVContext context)
{
var persons = new List<Person>
{
new Person { Name = "Mary Lee", Sexo = Sex.Female }
};
persons.ForEach(s => context.Persons.Add(s));
context.SaveChanges();
}
}
}
到目前为止,这么好。我的手表显示正确的值。
persons[0].Name = "Mary Lee"
persons[0].Sexo = Female
现在,我的人事控制员:
namespace AcTIV.Controllers
{
public class PersonController : Controller
{
private UnitOfWork unitOfWork = new UnitOfWork();
public ViewResult Index()
{
Person person = unitOfWork.PersonRepository.GetByID(1); //Just for test
//return View(unitOfWork.PersonRepository.Get().ToList());
}
}
}
这里我的Watch显示错误的枚举值:
person.Name = "Mary Lee"
person.Sexo = Male
我做错了什么?
---已解决---
答案在另一个stackoverflow帖子上: How is interpreted an enum type with EF Code First
答案 0 :(得分:1)
您使用的是EF4.3吗?我相信只有EF5才能提供enum
支持
答案 1 :(得分:0)
我怀疑是PersonRepository中具有ID的Person的性别枚举值未正确设置。默认情况下,第一个枚举器的值为0
但是在Mary Lee的人物记录看起来像男性= 0而不是女性= 1