2009-08-14 114 views
0

我有一些表,我不能让他们映射。实体框架不映射1对1关系

aspnet_Users 
UserId<PK> 
//Other Fields 

Table A(intermediate table) 
UserId<PK> 


Table B 
UserId<PK> 
Field1 
Field2 
Field3 

是的,当我在我添加这些3个表将要么得到与

aspnet_users一个1对1的关系,以表A

表A表B

我需要

aspnetusers to表A到表B

我试图添加这个关联,但它永远不会工作。

Error 3021: Problem in Mapping Fragment starting at line 168: Each of the following columns in TableA is mapped to multiple conceptual side properties: 

我该如何解决这个问题?

回答

4

如果中间表只是一个关系映射表(具有一个aspUser.userid和tableb.userid列),实体框架会将其切断并仅将aspnet_Users显示到TableB。

如果正如你所说的那样,那么你应该看到所有三张桌子的链条。

在你的数据库中,你有从aspnet_Users到tableA和Tablea到tableB的外键关系吗?

1日关系:aspnet_Users.UserID = TableA.UseID 第二个关系:TableA.UserID = TableB.UseID

如果你这样做,那么你刷新实体数据模型从数据库和它应该显示三个表asp_users到tableA和tableA映射到tableB。请注意,您可能必须关闭/重新打开edmx文件以查看正确的连接,并且设计器有时不会刷新。 alt text http://i31.tinypic.com/2ajyq05.jpg

alt text http://i27.tinypic.com/2417bbm.jpg

alt text http://i31.tinypic.com/29g0c50.jpg

alt text http://i32.tinypic.com/2wr3u4p.jpg

alt text http://i27.tinypic.com/r1eflf.jpg

+0

也许我没有加入协会的正确途径。你是怎么做到的?我无法让我的桌子像你的桌子一样出现。 – chobo2 2009-08-14 21:08:26

+0

为表A添加了DB关系屏幕截图 – Jay 2009-08-14 21:14:53

+0

我没有该外键关系窗口。它在哪里?我找不到它。 – chobo2 2009-08-14 21:18:49