2

我的问题很简单,但我似乎无法让 EF 了解我的数据库架构(Oracle)。

问题

我想建模超过 1 MM 的关系见下图:

在此处输入图像描述

正如你所看到的,我有一本书和一本日记——我想通过使用链接表(联结表、交集表,你明白了!)来存储这两者的 URI。在这种情况下,我想针对 Journal 16 和 Book 75 存储它恰好是“www.google.com”,它们将以蓝色标记的以下格式存储在链接表中。为了完整起见,我为 ID 为 5 的链接添加了一个绿色示例。所以你可以看到数据是如何结合在一起的,我想你会同意这没什么太疯狂的。

无论如何,当我尝试更新 EF 模型时,它会抱怨(在 Visual Studio 中)出现类似的错误。

从第 210 行开始映射片段时出现问题:从表 REF_URI (REF_ID) 到表 JOURNALs (REF_ID) 的外键约束“REF_URI_JOURNAL_FK1”:表 REF_URI 的列映射到 AssociationSet BOOK_URISet 的 End BOOKs 但表 JOURNALs 的键列未映射到与此 End 对应的 EntitySet BOOKs 的键。

是的 - 没有真正得到那个错误信息!
我可以让 EF 处理 1 MM 关系,例如

在此处输入图像描述

这一切都有效,“hunky dory”,但是当我添加第二个 MM 关系时,它因上面的错误消息而崩溃,例如

在此处输入图像描述

任何人都知道我该如何解决这个问题?

4

1 回答 1

3

对于两个多对多关系,您需要两个链接表(联结表、交集表)REFBOOK_URIREFJOURNAL_URI. 我认为这就是例外以一种神秘的方式所说的。如果您只有一个表,则意味着如果 Journal 123 链接到 URI 789,那么 Book 123 也必须链接到 URI 789,因为链接表中的列对于表和表都是REF_ID不可为空的外键。JournalBook

于 2012-07-24T21:28:11.780 回答