少し前にロールバックについて質問しました。新しい関連する質問があり、それに対する回答がありますが、いくつかの意見を求めています。
だから私は持続性を無視したオブジェクトモデルを構築していて、今はロールバックについて考えています。nHibernate がそれをどのように管理するかを調べたところ、保存されていない変更をキャンセルできるようにするには、ドメイン オブジェクトに独自の実装が必要になることがわかりました。
そのため、問題を簡潔に説明している ComponentModel の IEditableObject を見てきました。説明に沿った Microsoft の例は、私が行ったこととほぼ同じです。実際のデータを含むプライベート構造体があり、データが変更されると、元のデータが保存され、新しいデータが作成されます。それと INotifyPropertyChanged を使用して、オブジェクトがリセットされたことを通知します。
誰かが似たようなことをしましたか?より良いパターンを提案できますか?