开发者

How to process N-N relationship in EF?

Suppose I have 3 tables in DB for a many to many relationship:

TabA(id1, ...): Primary Key: id1

TabB(id2, ...): Primary Key: id2

TabAB(Id1, id2,..): Foreign Key: id1, id2

So w开发者_Python百科hen create edmx with VS 2010 from DB, I only get two entities TabA and TabB in the model because TabAB has no primary key.

How to process this case with EF?


Are you sure EF didn't just turn TabAB into a relationship? It won't appear as a table in the model if there are no other columns. EF figures out that TabAB is a join table and treats it accordingly.

If not, the best way would be to alter TabAB to have a compound primary key of both id1 and id2. If there is some reason that combination of values is non-unique, it might be good to examine why.


The common way is to handle many-to-many relationships in EF - to have three tables in storage and only two tables in conceptual model. Third table in storage contains of columns that represent the foreign keys referencing to the main tables, and the primary key of the intermediate table is built over these reference columns. Designer just hides it :)

Read more here - http://weblogs.asp.net/zeeshanhirani/archive/2008/08/21/many-to-many-mappings-in-entity-framework.aspx.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜