EF- '' 和 '' 都映射到表 ''。层次结构中没有鉴别器的所有实体类型必须映射到不同的表

Posted

技术标签:

【中文标题】EF- \'\' 和 \'\' 都映射到表 \'\'。层次结构中没有鉴别器的所有实体类型必须映射到不同的表【英文标题】:EF- Both '' and '' are mapped to the table ''. All the entity types in a hierarchy that don't have a discriminator must be mapped to different tablesEF- '' 和 '' 都映射到表 ''。层次结构中没有鉴别器的所有实体类型必须映射到不同的表 【发布时间】:2021-11-05 07:55:54 【问题描述】:

在运行Add-Migration 命令时出现以下Microsoft.EntityFrameworkCore 5.0.9 异常。

System.InvalidOperationException: '' 和 '' 映射到表 ''。所有的 层次结构中没有鉴别器的实体类型必须是 映射到不同的表。看 https://go.microsoft.com/fwlink/?linkid=2130430 了解更多信息。

【问题讨论】:

【参考方案1】:

如果您使用 Table-per-type configuration 并且不为各个表创建映射,则会发生此异常。

https://docs.microsoft.com/en-gb/ef/core/modeling/inheritance#table-per-type-configuration

通过将其添加到DbContext 解决它:

modelBuilder.Entity<NewEntity>().ToTable("NewEntities");

【讨论】:

以上是关于EF- '' 和 '' 都映射到表 ''。层次结构中没有鉴别器的所有实体类型必须映射到不同的表的主要内容,如果未能解决你的问题,请参考以下文章

实体框架中的类和接口层次结构?

EF Fluent API上

EF6 中使用复合键的每个具体类型 (TPC) 映射表

实体框架6每个层次结构表特定包括

FluentAPI详细用法

EF:将类属性映射到行而不是列