Es gibt mehrere Möglichkeiten, Änderungen in Entity Framework rückgängig zu machen:
- Neuerstellung des Objektkontexts
- Abtrennen/Anhängen vom Kontext
- Aktualisierung: context.MyEntity.Context.Refresh(RefreshMode.StoreWins, myobject);
Die Anwendung hat eine Registerkartenoberfläche, bei der eine Registerkarte ein anderes Entitätsobjekt anzeigt. Der Benutzer kann Tags zu Objekten hinzufügen (m:n-Beziehung). Ich habe alles versucht, was ich finden konnte, aber ich konnte Entity Framework nicht dazu bringen, Änderungen rückgängig zu machen, die der Benutzer an der m:n-Beziehung vornimmt. Zum Beispiel fügt der Benutzer ein Tag hinzu (m:n-Objekt wird erstellt). Wenn der Benutzer auf "Abbrechen" klickt, sollte das Objekt in die Datenbank gespeichert werden.
Das Neuerstellen des Kontexts würde potenziell zum Datenverlust in anderen Registerkarten führen. Abtrennen/Anhängen und Refresh() funktionieren nur, wenn das Objekt selbst geändert wurde und keine verwandten Objekte hinzugefügt/entfernt wurden.
Ich habe darüber nachgedacht, für jede Registerkarte unterschiedliche Kontextobjekte zu verwenden, aber das würde dazu führen, dass die Daten nicht synchron wären (zum Beispiel klickt der Benutzer auf eine Liste und eine neue Registerkarte öffnet sich. Nach der Änderung des Objekts würde die Liste nicht automatisch aktualisiert werden)