2010-07-31 30 views
6

這是一個奇怪的問題,我知道:)存儲庫模式,顯式還是隱式保存?

我真的很喜歡做正確的方式,我有疑問。

我知道製作界面,使用DI ...

我的問題是:

較好,有像「的SaveChanges」你必須手動調用的方法,每次你添加/刪除/無論對象是什麼?:

_repo.Add(blah); 
_repo.SaveChanges(); 

或者更好地保存每個修改數據的方法中的更改?

另一方面,我應該始終打開連接還是讓我關閉它?

即時通訊學習DB4O和我有一個關閉的方法,當我必須在另一個地方使用回購(如在另一個窗口,我打開窗口之前關閉)我打電話。

謝謝。

回答

2

我個人喜歡將SaveChanges方法分開。我認爲它允許消費應用程序具有更大的靈活性。這意味着它可以有更多的重用。

例如,讓它分開允許一個'事務'方法,其中可以不斷修改存儲庫,然後如果一切都可以接受,則調用save方法。另一方面,如果您希望在沒有單獨調用的情況下立即保存,則可以創建另一個版本的存儲庫,在CRUD操作期間調用存儲方法。

+0

夠公平的,我現在明白了什麼時候該採用該方法。謝謝。 – 2010-08-01 09:18:26

0

我想在.Net數據集中他們也使用AcceptChanges()函數來「提交」最新的數據修改。在Oracle數據庫中也有類似任務的COMMIT命令。