C# 在EF核心代码优先方法中正确映射枚举

C# 在EF核心代码优先方法中正确映射枚举,c#,model,entity-framework-core,C#,Model,Entity Framework Core,我有一个库应用程序,正在尝试使用代码优先的方法,它有一个图书实体,如下所示: 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 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类,我不确定我是否做得对;我不确定什么是最好的解决方案,转换为字符串,或者也在DB-like-SQL-enum中输入它(甚至不确定是否可能在EF-Core中输入):

公共类BookConfiguration:IEntityTypeConfiguration
{
公共void配置(EntityTypeBuilder)
{
建筑商。ToTable(书籍名称),“lib”);
builder.HasKey(b=>b.Id);
属性(b=>b.Id).ValueGeneratedOnAdd();
builder.Property(b=>b.Category)
.HasMaxLength(32)
.HasConversion();
}
}

我在获取资料的时候,是在更新一个条目时把它转换成字符串,但是这会使我在从DB?< /P>检索值时变得更困难吗?这显然是C++,不是。C@SGeorgiades看起来像是我的错

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>();

    }
}