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