Entity framework 在表拆分中以同一表为目标的多个实体

Entity framework 在表拆分中以同一表为目标的多个实体,entity-framework,Entity Framework,错误描述如下所示: “实体类型'DocTypeA'和'DocTypeB'不能共享表'DocMain',因为它们不在同一类型层次结构中,或者它们之间没有有效的一对一外键关系以及匹配的主键。” 我不知道我怎么才能解决这个问题 情况很简单:我有3张桌子。假设这些表用于存储有关文档的信息。有两种类型的文档。因此,数据库设计是将公共信息存储在一个基表(DocMain)中,并相应地将特定信息存储在表DocTypeA或表DocTypeB中的文档类型 在我的域模型中,我为每种文档类型创建了一个实体类(具有主表和

错误描述如下所示:

“实体类型'DocTypeA'和'DocTypeB'不能共享表'DocMain',因为它们不在同一类型层次结构中,或者它们之间没有有效的一对一外键关系以及匹配的主键。”

我不知道我怎么才能解决这个问题

情况很简单:我有3张桌子。假设这些表用于存储有关文档的信息。有两种类型的文档。因此,数据库设计是将公共信息存储在一个基表(DocMain)中,并相应地将特定信息存储在表DocTypeA或表DocTypeB中的文档类型

在我的域模型中,我为每种文档类型创建了一个实体类(具有主表和特定表的属性)。我有2个EntityTypeConfiguration将每个表映射到2个对应的表(主表和2个特定于类型的表之一)

如果我只有一个映射,那么一切都很好。如果我添加涉及相同主表的第二个映射,则会出现此错误


是否存在我不知道的EF限制,或者这是一个糟糕的设计?

尝试将文档存储在两个不同的数据库表中似乎有些奇怪。这不是标准的数据库设计

一种常见的方法是“Documents”是一个数据库表,如果您想区分存储在该表中的文档类型,只需向表中添加一个“Type”列,该列可以是“types”表的外键


如果您能够以这种方式简化数据库设计,您将能够避免EF的此错误

我知道这个DB计划一团糟。但是,你知道,事情就是这样。我无法轻易改变这种情况,因为有很多其他应用程序使用这个数据库。