几个实体以表格分割为目标

时间:2014-12-19 16:51:27

标签: entity-framework

错误说明如下:

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

我不知道如何解决这个问题...

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

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

如果我只有1个映射,一切正常。如果我添加涉及相同主表的第二个映射,则会出现此错误。

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

1 个答案:

答案 0 :(得分:0)

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

一种常见的方法是"文件"将是一个单独的数据库表,如果你想在该表中存储的文档类型之间分开,你可以简单地添加一个' Type'表格的列可能是“类型”的外键。表

如果您能够以这种方式简化数据库设计,则可以避免EF出现此错误。