Моему клиенту нравятся такие программы, как Microsoft OneNote, в которых изменения сохраняются автоматически, и он может отказаться от них, когда явно захочет это сделать. Мне придется реализовать некоторые функции отмены, но я выясню это в другой раз.
Я полагаю, что с NHibernate я могу вызывать ISession.Update для каждого отдельного изменения свойства/привязки, но я вижу настоящую боль с этим подходом в будущем. Я не фанат таймеров, но, возможно, 5-секундный таймер, который запускается при изменении свойства/привязки, а в конце таймера использует поток BackgroundWorker для сохранения в БД.
Что вы думаете?