2012-01-24 25 views
1

我目前在我的MVC 3應用程序中實現repository。我正在實現的以某種方式更改數據的所有存儲庫方法(主要是添加*和刪除*)目前不會調用SaveChanges方法。我明確要求我的存儲庫的用戶這樣做。是否需要SaveChanges在我的知識庫中顯式調用是否正確?

另一種選擇當然是我總是在我的變異方法中調用SaveChanges。

什麼往往是這裏的最佳做法,爲什麼?我已經習慣了第一種方式,以至於我已經習慣了,但是我很好奇,如果第二種方法會更好的原因,我會好奇的嗎?

回答

1

通常,來自業務或用例視角的工作單元涉及許多數據實體的修改。

如果在提交時出現問題,您確實想要將所有修改存儲在事務中,或者沒有任何修改。

因此,在工作單元結束時只調用SaveChanges一次,而不是在Add,Update和Delete方法中調用SaveChanges。

0

我認爲這樣做有很好的理由。但是,如果您的突變方法不會將更改保留到數據庫中,請務必知道這一點。我要做的是提供允許呼叫者指定的重載。此外,通過智能感知(如果我們可以假設每個人的IDE在2012年都具有該功能),提供重載使得它非常清楚每種方法都存在重載。否則,你將取決於你的存儲庫的用戶閱讀你的文檔(沒有人再這樣做,對吧?)。

相關問題