如何在Entity Framework设计器中设置多对多关系

时间:2011-05-24 20:28:11

标签: entity-framework-4 many-to-many

我是一名NHibernate开发人员,试图在一个爱好项目中给实体框架一个机会。我习惯使用Fluent NHibernate在代码中指定映射数据。赦免微软的信念,即开发者不应该被允许编写代码,我正在尝试使用Entity Framework的可视化设计器表面创建我的映射(通过在Visual Studio中打开.edmx文件获得)。

我不知道如何建立多对多的关系!我已经从数据库中“更新了模型”,但是我得到了两个一对多的关系,它与一个对应于联结表的新实体(只包含外键和它自己的主键)。

到目前为止,所有尝试通过点击实体和关系来解决这个问题都失败了。谁能给我一个指针?

2 个答案:

答案 0 :(得分:11)

您的联结表必须是MS所谓的“pure join table” - 它必须只包含 两个外键,而不包含其他列。在您的情况下,这意味着您必须删除主键列。

答案 1 :(得分:2)

将关联添加到模型时,您可以选择两个表中的每一个,并在关系的两侧选择“多个”。生成数据库脚本时,将为您创建仅包含两个键的连接表。

enter image description here

顺便说一下:如果你不喜欢使用Model-first而宁愿为实体框架编写研究“Code-First”开发。如果您愿意,也可以使用Database-First。