C# 如何建立多对多关系

C# 如何建立多对多关系,c#,visual-studio-2010,entity-framework,entity-framework-4,devart,C#,Visual Studio 2010,Entity Framework,Entity Framework 4,Devart,我的问题很简单,但我似乎无法让EF理解我的数据库模式(Oracle) 问题 我想建立一个以上的M-M关系,见下图: 正如您所看到的,我有一本书和一本日记,我想通过使用链接表(连接表、交叉表,您可以理解!)来存储这两本书的URI。在本例中,我想存储在Journal 16和Book 75中的“www.google.com”,它们将以蓝色标记的以下格式存储在链接表中。为了完整性,我为ID为5的链接添加了一个绿色示例。 所以你可以看到这些数据是如何组合在一起的,我想你会同意这并不太疯狂 无论如何,当我

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

问题

我想建立一个以上的M-M关系,见下图:

正如您所看到的,我有一本书和一本日记,我想通过使用链接表(连接表、交叉表,您可以理解!)来存储这两本书的URI。在本例中,我想存储在Journal 16和Book 75中的“www.google.com”,它们将以蓝色标记的以下格式存储在链接表中。为了完整性,我为ID为5的链接添加了一个绿色示例。 所以你可以看到这些数据是如何组合在一起的,我想你会同意这并不太疯狂

无论如何,当我尝试更新EF模型时,它(在VisualStudio中)会抱怨一个错误

从第210行开始的片段映射问题:外键约束“REF_URI_JOURNAL_FK1”从表REF_URI(REF_ID)映射到表JOURNAL(REF_ID):表REF_URI的列映射到AssociationSet BOOK_uriet的End BOOKs,但表日记账的键列未映射到与此End对应的EntitySet BOOKs的键

是的,并没有收到那个错误信息
我可以让EF与1个M-M关系一起工作,例如

这一切都是“hunky dory”,但当我添加第二个M-M关系时,上面的错误消息就结束了


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

对于两个多对多关系,您需要两个链接表(连接表、交叉表)
REFBOOK\u URI
REFJOURNAL\u URI
。我认为这就是例外以一种神秘的方式所说的。如果您只有一个表,这意味着如果日志123链接到URI 789,那么Book 123也必须链接到URI 789,因为链接表中的
REF\u ID
列将是
Journal
Book
表的不可空外键。

当我添加第二个M-M关系时,您的意思是:添加到数据库更新了EF模型,对吗?是的,我基本上在链接表中添加了另一个外键,然后更新了模型。