2012-07-08 63 views
0

我目前從MVC 2更新項目MVC 4,我要自定義ORM /數據訪問「層」與EF 4.3.1(升級交換到5時,它的出),正如我目前所瞭解的,大多數控制器使用來自另一個文件的函數,這些文件是包裝到DB查詢和存儲過程的。MVC 4 DB訪問設計決策

所以,我的問題是這樣的:我應該用包裝函數刪除這個文件,並直接使用EF從控制器獲取數據,或者我應該刪除每個函數的內容並用EF代碼替換它?

您可以給我的任何其他設計技巧?

謝謝!

回答

2

使用存儲庫模式(你在做什麼),讓你在未來更靈活,你可以換出的是與使用NHibernate的或連接到MySQL的代碼示例單個文件。通過這種方式,您的代碼與EF不緊密結合,如果您願意,您可以更輕鬆地離開它。

話雖如此,但顯然參與了存儲庫模式一些編碼開銷,如果你不與EF緊密耦合的代碼有關,那麼你當然可以去了後者。

1

我認爲,這是物質的選擇簡單,無論是對某些情形似乎有效。也就是說,我認爲對於使用類來簡化對數據庫的訪問的大型項目,提供常用功能,並且可以在需要時更容易地交換包裝其他數據提供者(如Hibernate)的類。

另外,您可以添加額外的數據提供商(例如消費對其他網站的API的),如果你還包括這些數據提供直接到你的控制器,你會產生非常難讀的代碼。

這種方法也可以顯著簡化你的控制器,這可能似乎不是一個大問題,在第一,但與顯著功能的多個控制器將被添加,附加值變得清晰。