1

我的客户喜欢 Microsoft OneNote 之类的程序,其中更改会自动保存,当他明确想要这样做时,他可以选择放弃。我将不得不实现一些撤消功能,但我会在其他时候解决这个问题。

使用 NHibernate,我想我可以在每一个属性/绑定更改上调用 ISession.Update,但我可以看到这种方法在未来会带来真正的痛苦。我不是计时器的粉丝,但可能是一个 5 秒的计时器,它从属性/绑定更改开始,在计时器结束时使用 BackgroundWorker 线程保存到数据库。

你怎么看?

4

1 回答 1

1

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

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

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

于 2010-04-24T20:00:53.033 回答