【发布时间】:2016-03-20 23:03:36
【问题描述】:
我在我的MVC 应用程序中使用Entity Framework Code First 方法,并且我为数据库中的每个表都有一些实体类。另一方面,我需要使用一些查找值,即性别、状态,我不想为其创建单独的域模型或表,因此我需要在相关的域模型类中定义 enum 值或单独的班级。虽然网上有很多样例,但我还没有找到适合EF 和MVC 的样例。您能否提供一个执行此要求的示例用法?
注意:我使用MVC5 和EF6。
这是我的实体类Visitor 和示例实体,可以在单独的类(.cs 文件)或同一类(.cs 文件)中定义:
namespace MyProject.Entities
{
public class Visitor
{
[Key]
public int VisitorID { get; set; }
public string VisitorName { get; set; }
//[ForeignKey("ReasonOfVisit")]
public byte ReasonOfVisit { get; set; }
//code omitted for brevity
}
public enum ReasonOfVisit
{
NotSet = 0,
Business meeting = 1,
Periodic visit = 2,
Getting information = 3,
Leaving package = 4
}
}
【问题讨论】:
-
@Fabjan 对不起,你是对的 :) 我加了我的努力,你能帮忙吗?谢谢...
-
如果我没记错的话,从 EF 5.0 开始就支持开箱即用的枚举,这意味着您可以在模型中使用您的枚举 -
public ReasonOfVisit ReasonOfVisit { get; set; } -
究竟是什么不工作?你得到错误?只要数据库中的 num 字段被定义为 int 或 smallint,这应该是开箱即用的。
-
@L-Three 唯一的问题是枚举值在从控制器返回到视图后更改为其 id(我尝试以 JSON 格式返回)。除此之外,我想使用由多个单词组成的字符串值作为枚举值。有什么想法吗?
标签: c# asp.net-mvc entity-framework enums domain-model