在WPF/MVVM/NHibernate中实现自动保存

在WPF/MVVM/NHibernate中实现自动保存,nhibernate,backgroundworker,autosave,Nhibernate,Backgroundworker,Autosave,我的客户喜欢像Microsoft OneNote这样的程序,在这些程序中,更改会自动保存,并且当他明确想要放弃时,他可以选择放弃。我必须实现一些撤销功能,但我会在其他时间解决这个问题 对于NHibernate,我想我可以在每个属性/绑定更改上调用ISession.Update,但我可以看到这种方法的真正痛苦。我不喜欢计时器,但可能是从属性/绑定更改开始的5秒计时器,在计时器结束时使用BackgroundWorker线程保存到db 你觉得怎么样?一个会话。通常,每次属性更改都更新不是一个好主意。属

我的客户喜欢像Microsoft OneNote这样的程序,在这些程序中,更改会自动保存,并且当他明确想要放弃时,他可以选择放弃。我必须实现一些撤销功能,但我会在其他时间解决这个问题

对于NHibernate,我想我可以在每个属性/绑定更改上调用ISession.Update,但我可以看到这种方法的真正痛苦。我不喜欢计时器,但可能是从属性/绑定更改开始的5秒计时器,在计时器结束时使用BackgroundWorker线程保存到db


你觉得怎么样?

一个会话。通常,每次属性更改都更新不是一个好主意。属性更改事件经常被触发。当您执行ISession时,它可能会减慢您的应用程序。每次更改都会更新。这可能会导致糟糕的用户体验

在我们的应用程序中具有相同的行为。我们在视图关闭时存储更改(其他相关事件)。例如,当用户关闭选项卡时,该选项卡中显示的数据将被关闭


当应用程序崩溃/意外情况发生时,增加一个计时器可能是防止数据丢失的一个好主意。

一个会话。通常情况下,每次属性更改时更新都不是一个好主意。属性更改事件经常被触发。当您执行ISession时,它可能会减慢您的应用程序。每次更改都会更新。这可能会导致糟糕的用户体验

在我们的应用程序中具有相同的行为。我们在视图关闭时存储更改(其他相关事件)。例如,当用户关闭选项卡时,该选项卡中显示的数据将被关闭

当应用程序崩溃/意外情况发生时,增加一个计时器可能是防止数据丢失的一个好主意