2009-01-22 9 views
1

Si j'ai une table avec deux champs de clé étrangère à une autre table, I.E.Plusieurs jointures à la même table avec Entity Framework

Table: User 
Field: FK_PrimaryItem_ID 
Field: FK_SecondaryItem_ID 

Table: Item 
Field: ItemID 

Lorsque j'utilise le cadre de l'entité, les objets générés deviennent:

User.Item et User.Item1

et je ne peux pas faire la différence entre les deux d'entre eux. Je peux remonter au nom de la clé étrangère, mais c'est une manière difficile de s'y prendre. Comment puis-je savoir lequel, Item1 ou Item est quel champ?

Je souhaite laisser mon fichier EDMX généré automatiquement si possible.

Répondre

2

Je n'ai trouvé aucun problème avec la mise à jour de mon modèle une fois que j'avais changé le nom des propriétés de navigation sur la surface de conception.

En général, User.Item représenterait la première colonne du modèle avec cette clé étrangère et User.Item1 représenterait la deuxième colonne. Mais comme je l'ai dit, je suis juste allé dans le modèle, et changé le nom des propriétés de navigation en plus de noms utilisables en fonction de l'association répertoriée dans les détails de cartographie.

+0

Merci, j'avais peur que ce soit ma seule option. Nous avons eu des problèmes avec les mises à jour, en particulier lorsque vous supprimez des colonnes ou que vous les renommez, mais nous devrons simplement les contourner. – Odd

1

J'ai eu le même problème avec une auto-référencement clé:

PageID 
Parent_PageID (refers to PageID) 

Jusqu'à ce que je renomme les propriétés de navigation pour « Parent » et « enfants » respectivement. La partie la plus difficile était de savoir qui est ce que j'ai fait en notant la propriété Multiplicity sur les objets NavigationProperty (0..1 pour parent, * pour enfants)

Questions connexes