Mettre à jour les objets de structure d'entité

entity entity-framework

Question

Je transfère des données entre le cadre de l'entité et la couche de gestion et la couche utilisateur à l'aide d'objets de transfert de données. Si je récupère un objet qui est converti en DTO, comment puis-je mettre à jour le bon objet dans le cadre de l'entité sans insérer un double?

Réponse populaire

Le code suivant mettra à jour une entité EF 4 créée en tant que paramètre de contrôleur dans MVC à partir d'une vue fortement typée:

Il semble que l'astuce consiste à utiliser ObjectStateManager pour modifier l'état de Ajouté à Modifié une fois l'entité ajoutée au contexte.

MyEntities db = new MyEntities();
db.Product.AddObject(product);
db.ObjectStateManager.ChangeObjectState(product, System.Data.EntityState.Modified);
return db.SaveChanges() > 0;

Selon le commentaire de @Sean Mills si vous utilisez EF5, utilisez:

 ((IObjectContextAdapter) db).ObjectContext.ObjectStateManager.ChangeObjectState(entity, System.Data.EntityState.Added);


Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow