我的客户喜欢Microsoft OneNote等自动保存更改的程序,他可以选择在明确要求时丢弃。我将不得不实现一些撤消功能,但我会在其他时间解决这个问题。
使用NHibernate,我想我可以在每个属性/绑定更改上调用ISession.Update,但是我可以看到这种方法的真正痛苦。我不是计时器的粉丝,但可能是5秒计时器,它从属性/绑定更改开始,在计时器结束时使用BackgroundWorker线程保存到db。
您怎么看?
答案 0 :(得分:1)
关于每个属性更改的ISession.Update通常不是一个好主意。属性变化事件经常被解雇。当您对每次更改执行ISession.Update时,它可能会降低您的应用程序速度。这可能会导致糟糕的用户体验。
在我们的应用程序中具有相同的行为。我们在View关闭时存储更改(一些其他相关事件)。例如,当用户关闭选项卡时,该选项卡中显示的数据将被关闭。
当应用程序崩溃/意外发生时,额外的计时器可能是防止数据丢失的好主意。