EntityFrameworkの変更を元に戻すにはいくつかの方法があります。
- オブジェクトコンテキストの再作成
- コンテキストから切り離す/アタッチする
- 更新:context.MyEntity.Context.Refresh(RefreshMode.StoreWins、myobject);
アプリケーションにはタブ付きのインターフェイスがあり、1つのタブに別のエンティティオブジェクトが表示されます。ユーザーはタグをオブジェクトに追加できます(m:n関係)。見つけたすべてのことを試しましたが、ユーザーがm:n関係に加えた変更をEntityFrameworkで元に戻すことができませんでした。たとえば、ユーザーがタグを追加します(m:nオブジェクトが作成されます)。ユーザーが[キャンセル]をクリックすると、オブジェクトがデータベースに保存されます。
コンテキストを再作成すると、他のタブのデータが失われる可能性があります。Detach / AttachおよびRefresh()は、オブジェクト自体が変更され、オブジェクトのリストに追加/削除された関連オブジェクトがない場合にのみ機能します。
タブごとに異なるコンテキストオブジェクトを使用することを考えましたが、データが同期しなくなります(たとえば、ユーザーがリストをクリックして新しいタブが開きます。オブジェクトを変更した後、リストは更新されません。自動的)