我正在尝试实现的是在一个持久存储(数据库)上有一个持久的“可撤销”更改的列表。
该体系结构将存储库用于域对象,将工作单元用于事务,对于最后部分(撤消),我考虑使用命令模式。然而,对我来说,似乎没有好的解决方案如何使执行的命令持久化。
基本上,在存储库上有3个写操作:添加/更新/删除,并且使用命令模式,我需要在执行命令之前存储状态。例如:在删除域对象(实体)之前,我必须存储域对象(实体),以便一旦在命令上调用撤销,我就可以恢复它。这里最大的问题是如何以一种整洁的方式存储之前的状态!
也许你们中的一些人遇到了同样的问题,在我看来,这并不少见。
谢谢,克里斯
发布于 2010-07-20 15:38:12
我遇到的不同方法是:
发布于 2010-07-20 19:24:12
很难给出明确的建议,但这里有几个指针- 0xEB67ADB1,0xF97ACE64。开个玩笑。
IDENTITY_INSERT(Sql Server,我相信在其他数据库和ORM中也有等价物)。我会考虑持久化模型对象或它的一些轻量级表示-无论它是DTO还是其他序列化形式。
发布于 2010-07-25 21:57:28
看一看CSLA.NET framework。它支持领域实体上的撤销操作,因此它可能值得查看一些想法的源代码。
https://stackoverflow.com/questions/3287757
复制相似问题