2010-04-24 48 views
1

我的客戶喜歡像Microsoft OneNote這樣的程序,在這些程序中自動保存更改,並且他可以在明確要求時選擇丟棄。我將不得不實施一些撤消功能,但我會在其他時間弄清楚。使用NHibernate,我想我可以在每一個屬性/綁定變化上調用ISession.Update,但是我可以看到這種方法在路上真正的痛苦。我不是定時器的粉絲,但也許是一個5秒鐘的定時器,從屬性/綁定更改開始,並在定時器結束時使用BackgroundWorker線程保存到數據庫。在WPF/MVVM/NHibernate中實現自動保存

您認爲如何?

回答

1

每個屬性更改的ISession.Update通常不是一個好主意。財產變化事件經常被激發。當你對每一次改變進行ISession.Update時,它可能會減慢你的應用程序。這可能會導致糟糕的用戶體驗。

在我們的應用程序中有相同的行爲。我們在視圖關閉時(一些其他相關事件)存儲更改。例如,當用戶關閉標籤時,該標籤中顯示的數據將被關閉。

一個額外的計時器可能是一個好主意,當應用程序崩潰/意外發生時防止數據丟失。