如何处理EF中的N-N关系?

时间:2011-02-07 18:58:34

标签: entity-framework-4

假设我在DB中有3个表用于多对多关系:

TabA(id1,...):主键:id1

TabB(id2,...):主键:id2

TabAB(Id1,id2,..):外键:id1,id2

因此,当从DB创建带有VS 2010的edmx时,我只在模型中获得两个实体TabA和TabB,因为TabAB没有主键。

如何使用EF处理此案例?

2 个答案:

答案 0 :(得分:1)

你确定EF不只是将TabAB变成了一种关系吗?如果没有其他列,它将不会显示为模型中的表。 EF确定TabAB是一个连接表,并相应地对其进行处理。

如果没有,最好的方法是将TabAB改为拥有id1id2的复合主键。如果某些原因导致值的组合不是唯一的,那么检查原因可能是好的。

答案 1 :(得分:0)

常见的方法是在EF中处理多对多关系 - 在存储中有三个表,在概念模型中只有两个表。存储中的第三个表包含表示引用主表的外键的列,并且中间表的主键是在这些引用列上构建的。设计师只是隐藏它:)

在此处阅读更多内容 - http://weblogs.asp.net/zeeshanhirani/archive/2008/08/21/many-to-many-mappings-in-entity-framework.aspx