作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在我的 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
}
}
最佳答案
如果您想将枚举与您的 EF 模型一起使用,您可以尝试以下解决方案:
public class User
{
public string Id { get; set; }
public RegistrationStatus RegistrationStatus { get; set; }
}
public class UserConfiguration : EntityTypeConfiguration<User>
{
public UserConfiguration()
{
this.Property(x => x.RegistrationStatus)
.HasColumnType("int")
.IsRequired();
}
}
public enum RegistrationStatus
{
Pending = 1,
Active = 2,
Blocked = 3
}
当然是尽量简化了。你基本上做的是将你的枚举映射到一些原始类型。 EF 会自动转换值,您可以随意使用它。
关于c# - 使用 EF Code First 方法在域模型中使用枚举值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34284433/
我是一名优秀的程序员,十分优秀!