Cambia stato entità

entity-framework

Domanda

Attualmente ho un modello di entità con un gruppo di elementi eliminati, lo stato viene eliminato. C'è un modo per "recuperarli"? Conosco gli articoli che si desidera ripristinare, ma non so come ripristinare gli elementi. Idealmente mi piacerebbe riportarlo a uno stato invariato.

Risposta accettata

Hai la possibilità di non commettere semplicemente il contesto di connessione? - disporre ObjectContext senza chiamare objectContext.SaveChanges (); Ovviamente, se hai certe modifiche che non vuoi salvare, esse non permarranno neanche.

Se hai chiamato objectContext.DeleteObject(x) non puoi ripristinarlo e salvare le modifiche.

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

// objectStateEntry.State is not setable 

ObjectStateEntry ha la proprietà OriginalValues in modo da poter, in teoria, ricreare scrupolosamente una collezione che rappresenta le modifiche originali, meno quelle indesiderate, uscire da objectContext, aprirne una nuova e ricostruire quelle modifiche meno quelle indesiderate lì. Probabilmente non vale la pena, ma non c'è modo documentato per deselezionare qualcosa per la cancellazione in questo momento.


Risposta popolare

dopo aver chiamato

objectContext.DeleteObject (x) ,

puoi simulare l'undelete dell'oggetto x con

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



Related

Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow