gpt4 book ai didi

c# - 使用 EF Code First 方法在域模型中使用枚举值

转载 作者:太空狗 更新时间:2023-10-29 20:27:07 24 4
gpt4 key购买 nike

我在我的 MVC 应用程序中使用 Entity Framework Code First 方法,并且我为数据库中的每个表设置了一些实体类。另一方面,我需要使用一些查找值,即性别、状态,我不想为其创建单独的域模型或表,因此我需要在相关的 enum 中定义值域模型类或单独的类。虽然网上有很多示例,但我还没有找到适合EFMVC 的示例。您能否提供一个执行此要求的示例用法?

注意:我使用 MVC5EF6。这是我的名为 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com