2009-11-13 11 views
0

J'utilise Entity Framework avec SQL Server. J'ai une relation de plusieurs à plusieurs entre deux tables. J'ai créé une table de jointure avec juste les champs principaux principaux des 2 tables. Dans le concepteur, les 2 tables ont maintenant une propriété de navigation à l'autre avec les types de retour de Collection de X où X est l'autre entité. Jusqu'à présent, tout comme il se doit. La configuration semble correcte.Comment créer et mettre à jour une relation plusieurs à plusieurs avec EF

Task   TaskProducts  Product 
==========  ============  ======= 
TaskID   TaskID   ProductID 
Description ProductID  Name 

Toutes les tâches ne verront pas un produit ou des produits associés. Que dois-je attribuer à la propriété de navigation Produits de la table des tâches lorsqu'il n'y a pas de produit associé pour cette tâche?

-je construire une collection de EntityCollection avec les entités du produit et assignons à la propriété de navigation Produits sur l'entité Tâche lorsque j'ai des entités du produit?

Lorsque vous effectuez des mises à jour (ajout, suppression et modification) à la propriété de navigation Produits sur l'entité de travail, je travaille avec elle comme toute autre collection? Y a-t-il des choses spéciales à surveiller?

Je serais intéressé à toute aide à travailler avec beaucoup de nombreuses relations dans le Entity Framework.

Modifier (11/17/2009)
Une chose que j'appris est que pour un grand nombre de nombreux travaux de relation avec une table de jointure, les deux champs dans la table de jointure doivent être marqués comme clés primaires;

Répondre

0

MSDN a une bonne documentation sur la gestion de nombreux à-plusieurs dans le Entity Framework: Méthode

http://msdn.microsoft.com/en-us/library/bb738695.aspx

Les directives normatives pour les inserts est d'appeler le « Ajouter » sur la collection d'entités et de préciser la objet connexe (par rapport à la définition de la propriété Value sur la référence d'entité pour une relation un-à-plusieurs.)

Les mises à jour sont gérées comme toute autre mise à jour EF ... charger l'objet souhaité, définir les propriétés modifiées et appeler SaveChanges sur le contexte.

Les suppressions sont traitées de la même ainsi, appeler DeleteObject sur le contexte et SaveChanges.

+0

Bien que ce document lié ne traite pas spécifiquement de plusieurs à plusieurs relations, ils sont mentionnés et l'information est utile. C'est vraiment bien comment vous pouvez travailler avec la collection et ne pas vous soucier de la gestion de la table de jointure. – DaveB

Questions connexes