不久前我问了一个关于回滚的问题,我有一个新的相关问题,我有一个答案,但想要一些输入。
所以我正在构建一个持久性无知的对象模型,我现在正在考虑回滚。我已经查看了 nHibernate 是如何管理它的,这表明如果我希望能够取消未保存的更改,我需要在域对象上拥有自己的实现。
所以我在 ComponentModel 中看到了 IEditableObject ,它简洁地描述了这个问题。Microsoft 的示例与描述几乎是我所做的,它们有一个包含实际数据的私有结构,当数据更改时,原始数据被保存并创建一个新结构。那和 INotifyPropertyChanged 通知对象已重置。
有没有人做过类似的事情?你能推荐一个更好的模式吗?