2011-07-06 2 views
0

J'ai une application qui utilise Entity Framework Code First. J'essaie d'écrire ma couche d'accès aux ressources. J'ai plusieurs objets qui ont tous des tables de base de données séparées et beaucoup de relations d'objets. Quelqu'un peut-il me diriger vers un exemple à jour de méthodes CRUD avec des objets connexes? Tout ce que j'ai trouvé utilise une version plus ancienne (j'utilise DbContext, pas ObjectContext, etc.) et j'ai du mal à l'écrire moi-même.Entity Framework: Joindre des objets connexes et d'autres gestion d'état

Par exemple, je travaille actuellement sur un objet avec une relation parent-enfant avec lui-même. J'essaie d'écrire la méthode Create. Si j'utilise context.Objects.Add(newObject) alors tous les objets enfants ont aussi leur état changé en Ajouté, ce qui signifie que les enfants dupliqués sont ajoutés. J'ai donc essayé de boucler tous les enfants et de les attacher au contexte, mais tous les enfants qui n'existaient pas auparavant ne sont pas ajoutés à la base de données et une exception DbUpdateException est levée.

Existe-t-il une manière générique de pouvoir attacher toutes les entités liées et d'avoir leurs états corrects? Toute aide que vous pouvez me donner serait appréciée. Merci!

Edit:

j'ai essayé de charger explicitement les enfants à l'aide Load(), puis en ajoutant l'objet initial. Malheureusement, cela provoquait une exception car le commentaire parent avait l'enfant dans sa liste d'enfants mais le parentID de l'enfant existant n'avait pas encore été mis à jour.

Répondre

0

Non il n'y a aucun moyen d'attacher le graphe entier et laisser EF définir automatiquement l'état correct - these problems n'a pas changé depuis ObjectContext API. Vous devez toujours définir l'état manuellement pour chaque entité et relation ou vous devez générer le graphique à partir des entités attachées. La seule exception est Self tracking entities mais elles ne sont pas prises en charge avec l'API DbContext.

Questions connexes