我正在用Castle ActiveRecord構建一個桌面應用程序,並希望能夠完成每個窗口窗體1個nHibernate會話的等效功能。關於如何使用Active Record執行此操作的任何想法?如何使用ActiveRecord爲桌面應用程序中的不同窗口創建不同的會話?
具體來說,我有一個主窗口,允許您瀏覽數據(只讀),然後您可以打開單獨的窗體來編輯數據。
每次打開表格時,我想要創建一個新的會話,獲取要編輯的數據的副本(因此可以更改而不會影響主窗口中的數據)。然後我希望能夠通過數據綁定操作該副本。最後,提交更改(如果用戶選擇保存)或將其回滾(如果用戶選擇取消)。
任何想法?
感謝您的回答。如果我不使用SessionScope,它實際上是否會創建要編輯的數據項的單獨實例?我問的原因是因爲我遇到的另一個問題是如果他們都使用相同的實例(即使我不保存())INotifyPropertyChanged消息將去主窗口 - 我不想。因此,如果可能的話,使用獨立副本聽起來最好嗎? – 2010-01-10 22:19:02
謝謝!我即將前往本週的CodeMash會議,但當我回來時,我會毫不猶豫地嘗試。快速問題 - 這將允許延遲加載(例如,通過數據綁定 - 所以在新的ConversationalScope(會話)之外發生的調用)? – 2010-01-12 14:31:30
是的,我甚至在那個測試的評論中指出了這一點。我今天強化了它,我認爲它將在本週末完成。 – MZywitza 2010-01-12 19:48:27