2009-01-22 71 views
1

如果我有一个表与两个外键字段到另一个表,I.E.多个连接到同一个表的实体框架

Table: User 
Field: FK_PrimaryItem_ID 
Field: FK_SecondaryItem_ID 

Table: Item 
Field: ItemID 

当我使用实体框架,生成的对象变成了:

User.Item 和 User.Item1

,我不能在他们两人之间进行区分。我可以映射回外键的名称,但这是一个难以解决的问题。我怎样才能找出哪一个,Item1或Item是哪个字段?

如果可能,我想让我的EDMX文件自动生成。

回答

2

我改变设计图面上导航属性的名称后,我还没有发现更新我的模型的任何问题。

一般来说,User.Item将表示模型使用该外键创建的第一列,而User.Item1将表示第二列。

但正如我所说的,我刚进入模型,并根据Mapping Details中列出的关联将导航属性的名称更改为更多可用的名称。

+0

谢谢,我担心这将是我唯一的选择。我们在更新时遇到了问题,尤其是当您删除列或重命名它们时,但我们只需要解决它们就可以了。 – Odd 2009-01-22 23:00:06

1

我有一个自引用键同样的问题:

PageID 
Parent_PageID (refers to PageID) 

直到我分别“父母”和“孩子”改名为导航属性。最困难的部分是通过注意NavigationProperty对象上的Multiplicity属性(父母为0..1,孩子为*)来确定哪个是哪个,

相关问题