Changer l'état de l'entité

entity-framework

Question

J'ai actuellement un modèle d'entité avec un tas d'éléments supprimés, l'état est supprimé. Existe-t-il un moyen de les "restaurer"? Je sais quels éléments je veux restaurer, mais je ne sais pas comment les supprimer. Idéalement, j'aimerais revenir à un état inchangé.

Réponse acceptée

Avez-vous la possibilité de ne pas valider le contexte de connexion? - Disposer le ObjectContext sans appeler objectContext.SaveChanges (); Bien sûr, si vous avez certains changements que vous ne souhaitez pas enregistrer, ils ne persisteront pas non plus.

Si vous avez appelé objectContext.DeleteObject(x) vous ne pouvez pas le restaurer et continuer à enregistrer les modifications.

ObjectStateEntry objectStateEntry = objectContext.ObjectStateManager.GetObjectStateEntry(x);

// objectStateEntry.State is not setable 

ObjectStateEntry possède la propriété OriginalValues. Vous pouvez donc, en théorie, recréer minutieusement une collection qui représente les modifications d'origine, moins les indésirables, quittez l'objetContext, ouvrez-en un nouveau et reconstruisez ces modifications moins les modifications indésirables. Cela ne vaut probablement pas la peine, mais il n’existe aucun moyen documenté de désélectionner quelque chose à supprimer pour le moment.


Réponse populaire

après avoir appelé

objectContext.DeleteObject (x) ,

vous pouvez simuler la suppression intégrale de l'objet x avec

objectContext.Detach (x); objectContext.Attach (x)



Related

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