我似乎没有弄清楚如何在ASP.NET MVC 3模型中使用枚举值(使用代码优先方法),以便它们存储在数据库中并保存。
我的模型代码如下:
public class TestNews
{
public int Id { get; set; }
[Required]
public DateTime Date { get; set; }
[Required]
//[EnumDataType(typeof(TestNewsType))]?
public TestNewsType Type { get; set; }
[Required]
public string Title { get; set; }
}
public enum TestNewsType : short
{
Draft = 0,
PublishedPublicly = 1,
PublishedInternally = 2,
Removed = 3
}
重新创建数据库后,它包含表TestNews,但它只包含列:
如何使它也将Type存储在数据库中?还应该使用EnumDataType注释吗?
我后来想在控制器动作中使用它,如:
public ActionResult Latest(int count=5)
{
var model = db.TestNews
.Where(n => n.Type == TestNewsType.PublishedPublicly)
.OrderByDescending(n => n.Date)
.Take(count)
.ToList();
return PartialView(model);
}
答案 0 :(得分:2)
June CTP of Entity Framework引入了Enum支持。
作为使用CTP的替代方法,在MSDN博客上有一篇关于how to fake enums with Entity Framework的文章。