【发布时间】:2011-08-04 11:03:05
【问题描述】:
我正在开发一个具有以下两个要求的 C# 应用程序:
- 用户应该能够撤消/重做命令,例如插入、编辑和删除帐户、交易等。
- 这些命令只应在用户单击保存时持久保存到 SQL CE 数据库中。
有什么最佳做法可以做到这一点吗?我已经读过实现命令模式对于撤消/重做要求很有用。对我来说,问题在于持久化对数据库的更改。我使用的是业务实体而不是数据集,并且我不能使用 Linq to SQL 或实体框架,所以我不确定如何跟踪对这些实体所做的更改以在用户单击保存时持久保存到数据库。
我的问题是:
是否建议实施工作单元模式来跟踪更改,还是有更好的方法?我不确定这将如何与命令模式相结合,例如是否传递给将实体标记为脏/新/已删除的命令的工作单元,以及执行命令的 undo 方法时会发生什么?实体是否再次标记为脏/新/已删除,还是可以以某种方式从工作单元中删除?
【问题讨论】:
-
stackoverflow.com/a/29949644/2961878 这不是您问题的答案,但我认为 AZURITE 可以帮助您获得想法。
标签: c# .net design-patterns