gpt4 book ai didi

c# - 如何拥有超过 1 个多对多关系

转载 作者:行者123 更新时间:2023-11-30 22:26:44 26 4
gpt4 key购买 nike

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

问题

我想建模多于 1 M-M 关系见下图:

enter image description here

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

无论如何,当我尝试更新 EF 模型时,它会提示(在 Visual Studio 中)并出现错误。

Problem in mapping fragments starting at line 210:Foreign key constraint 'REF_URI_JOURNAL_FK1' from table REF_URI (REF_ID) to table JOURNALs (REF_ID): The columns of table REF_URI are mapped to AssociationSet BOOK_URISet's End BOOKs but the key columns of table JOURNALs are not mapped to the keys of the EntitySet BOOKs corresponding to this End.

是的 - 没有真正收到错误消息!
我可以让 EF 处理 1 M-M 关系,例如

enter image description here

这一切都“hunky dory”,但当我添加第二个 M-M 关系时,它因上面的错误消息而失败,例如

enter image description here

有人知道我该如何解决这个问题吗?

最佳答案

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

关于c# - 如何拥有超过 1 个多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11635966/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com