Entitätsstatus ändern

entity-framework

Frage

Ich habe derzeit ein Entitätsmodell mit einer Reihe gelöschter Elemente. Der Status wird gelöscht. Gibt es eine Möglichkeit, sie "wiederherzustellen"? Ich weiß, welche Elemente ich wiederherstellen möchte, aber ich weiß nicht, wie sie wiederhergestellt werden sollen. Im Idealfall würde ich es gerne in einen unveränderten Zustand bringen.

Akzeptierte Antwort

Haben Sie die Möglichkeit, den Verbindungskontext nicht zu begehen? - den ObjectContext entsorgen, ohne objectContext.SaveChanges () aufzurufen; Wenn Sie bestimmte Änderungen haben, die Sie nicht gespeichert haben, werden sie natürlich auch nicht beibehalten.

Wenn Sie objectContext.DeleteObject(x) aufgerufen objectContext.DeleteObject(x) , können Sie es nicht wiederherstellen und die Änderungen trotzdem speichern.

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

// objectStateEntry.State is not setable 

ObjectStateEntry verfügt über die OriginalValues-Eigenschaft, sodass Sie theoretisch eine Sammlung, die die ursprünglichen Änderungen darstellt, akribisch neu erstellen möchten, die unerwünschten Änderungen jedoch nicht, den objectContext beenden, eine neue öffnen und die Änderungen ohne die unerwünschten dort neu erstellen. Wahrscheinlich nicht die Mühe wert, aber es gibt keine dokumentierte Möglichkeit, etwas zum Löschen zu entfernen.


Beliebte Antwort

nachdem du anrufst

objectContext.DeleteObject (x) ,

Sie können Undelete von Objekt x mit simulieren

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



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum