实体框架中的多对多关系,其中连接表有两个以上的字段?

时间:2011-02-15 01:11:03

标签: c# database entity-framework ado.net entity-framework-4

我正在将数据库导入Entity Framework,我遇到了多对多关系的问题,如下所示:

我的理解是,如果“连接表”(中间的一个)只包含两个字段(外键),那么EF将自动删除中间表并创建多对多关系。不幸的是,我无法控制数据库模式,所以有人知道是否有办法手动复制该行为?

对于记录,Employee_Employee_Type中的Id字段背后没有任何用途,它的设计很差。

2 个答案:

答案 0 :(得分:8)

根据实体框架4的配方,第554页,这就是你要做的事情(它并不漂亮)。

实际上,您希望创建一个Employee_Employee_type映射表的视图,但没有额外的列,然后手动将其映射到其他两个表。以下是相关页面的图片。我认为(并希望!)这是学术自由使用版权法所涵盖的......

这本书太棒了,BTW,所以我建议买它。如果他发生这件事,希望这对我很有帮助。

enter image description here

enter image description here

答案 1 :(得分:2)

是的,这可能是为您提供更清晰的查询体验以及插入和更新的最佳方法,您始终可以使用链接表。 最后,不会提及何时,EF将支持带有效负载的导航属性。 我很高兴有人喜欢这项工作。老实说花了一年的时间来写这本书。