背景:
我使用基于数据库的方法使用 Entity Framework Core 生成实体,并使用 Scaffolding。每当我更改数据库中的内容时,我都会使用 -f
参数运行 Scaffolding 来重写生成的实体。到目前为止都很好。在我的数据库架构中,我有一些查找表,它们作为其他表的枚举类型,并且这些其他表在其上具有外键。
问题:
我想从这些查找表中生成可以在我的代码中使用的枚举类型。这些枚举类型应由查找表中的数据填充(Id、Value)。这种情况是否可能?
我看到可以忽略这些表格的实体生成,并使用 值转换 将自己的枚举类型与其链接。但这真的是唯一的解决方法吗?
我的数据库架构示例:
TABLE: Category
Id | Value |
---|---|
0 | Cardio |
1 | Strength |
2 | Hyperthrophy |
TABLE: Exercise
Id | Name | Category |
---|---|---|
0 | Deadlift | 1 |
1 | Benchpress | 1 |
2 | Jogging | 0 |
所以,从表格 Category
中,我想生成简单的枚举类型:
public enum Category {
Cardio = 0,
Strength = 1,
Hyperthrophy = 2
}
然后我希望它可以在实体
Exercise
中使用,例如:public partial class Exercise {
public Exercise() {
}
public int Id { get; set; }
public string Name { get; set; }
public Category Category { get; set; }
}
OnConfiguring
或OnModelCreating
并指定该表及其内容应表示为枚举来实现? - ssamkoOnModelCreating
,但您还必须在命令行中指定这些列。您仍然需要自己创建枚举。 - Panagiotis Kanavos