微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 EF Core Code First 方法中正确映射枚举

如何解决在 EF Core Code First 方法中正确映射枚举

我有一个图书馆应用程序,我正在尝试采用代码优先的方法,该方法具有这样的 Book 实体:

public class Book
{
    public int Id { get; set; }
    public string Code { get; set; }
    public string Title { get; set; }
    public string Publisher { get; set; }
    public Category? Category { get; set; }
}

public enum Category : byte
{
    [Description("LA_Category_Thriller")]
    Thriller,[Description("LA_Category_Adventure")]
    Adventure,[Description("LA_Category_Comic")]
    Comic,[Description("LA_Category_Mistery")]
    Mistery
}

现在我正在编写一个 BookConfiguration 类,但我不确定我做的是否正确;我不确定什么是最好的解决方案,转换为字符串,或者像 sql 枚举一样将它输入到数据库中(不确定在 EF Core 中是否可能):

public class BookConfiguration : IEntityTypeConfiguration<Book>
{
    public void Configure(EntityTypeBuilder<Book> builder)
    {
        builder.ToTable(nameof(Book),"lib");

        builder.HasKey(b => b.Id);
        builder.Property(b => b.Id).ValueGeneratedOnAdd();

        builder.Property(b => b.Category)
            .HasMaxLength(32)
            .HasConversion<string>();

    }
}

就我得到的东西而言,这会在更新条目时将其转换为字符串,但是当我从 db 检索值时,这会不会使事情变得更难?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。