Я занимаюсь разработкой приложения на C #, которое соответствует следующим двум требованиям:
- пользователь должен иметь возможность отменить / повторить команды, такие как вставка, редактирование и удаление учетных записей, транзакций и т. Д.
- эти команды должны сохраняться в базе данных SQL CE только тогда, когда пользователь нажимает сохранить.
Есть ли лучшие практики для этого? Я прочитал, что реализация шаблона команды полезна для требования отмены / повтора. Проблема для меня заключается в сохранении изменений в базе данных. Я использую бизнес-объекты, а не наборы данных, и я не могу использовать Linq to SQL или Entity Framework, поэтому я не уверен, как отследить изменения, внесенные в эти объекты, чтобы сохранить их в базе данных, когда пользователь нажимает сохранить.
Мой вопрос:
Желательно ли внедрить шаблон «Единица работы» для отслеживания изменений или есть лучший способ? Я не уверен, как это будет сочетаться с шаблоном команды, например передается ли единица работы команде, которая помечает объект как грязный / новый / удаленный, и что происходит при выполнении метода отмены команды? Объект снова помечен как грязный / новый / удаленный или его можно как-то удалить из единицы работы?