[英]Map Discriminator Column to class Property Entity Framework Core 2.2.0
我无法为 Entity Framework Core (v. 2.2.0) 生成迁移
我有一个类“问题”,它由类“MultipleChoiceQuestion”和“MatchColumns”继承。 我正在尝试使用 Entity Framework Core 构建 TPH(每个层次结构的表)继承。 我的基类 (Question) 有一个属性“QuestionType”来区分子类。 “QuestionType”属性是一个枚举。 我不希望 EF 生成鉴别器列,而是使用属性“QuestionType”作为鉴别器列。
为了创建正确的迁移,我在 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");
}
但是当我运行“Add-Migration”时,出现以下错误:
实体类型“问题”是层次结构的一部分,但没有配置鉴别器值。
无法弄清楚为什么配置代码失败。 我查看了 Microsoft 的以下文档: https : //docs.microsoft.com/en-us/ef/core/modeling/inheritance#discriminator-configuration
任何指示为什么配置不完整/破坏?
TIA。
任何一个Question
都应该是抽象的。 或者它应该是可能的记录类型之一,具有鉴别器值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.