我无法为实体框架核心(2.2.0版(生成迁移
我有一个类"问题",它继承了类"多选项问题"&"MatchColumns"。我正在尝试使用实体框架核心构建一个TPH(每层次表(继承。我的基类(Question(有一个属性"QuestionType"来区分子类。"QuestionType"属性是一个枚举。我不希望EF生成Discriminator列,而是使用属性"QuestionType"作为Discriminater列。
为了创建正确的迁移,我在dbcontext类中使用以下代码:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Question>(b => b.HasDiscriminator(x => x.QuestionType).HasValue<MultipleChoiceQuestion>(QuestionType.MultipleChoiceQuestion).HasValue<MatchColumns>(QuestionType.MatchColumns));
modelBuilder.Entity<Question>().Property(p => p.QuestionType).HasMaxLength(100).HasColumnName("QuestionType");
}
但是当我运行"添加迁移"时,我会得到以下错误:
实体类型"Question"是层次结构的一部分,但没有配置鉴别器值。
无法弄清楚配置代码失败的原因。我查看了Microsoft的以下文档:https://learn.microsoft.com/en-us/ef/core/modeling/inheritance#discriminator-配置
为什么配置不完整/中断?
TIA。
任一Question
都应该是抽象的。或者它应该是一种可能的记录类型,带有鉴别器值。