我正在構建一個MVC3應用程序,試圖使用IoC和構造函數注入。我的數據庫(目前爲止)大約有50個表。我使用EF4(w/POCO T4模板)作爲我的DAC代碼。我正在使用存儲庫模式,每個表都有自己的存儲庫。我的服務層中的服務類被注入到這些存儲庫中。爲服務層設計DI(構造函數注入)庫
問題:我的服務類越來越多,他們需要的存儲庫。在某些情況下,我正在接近10個儲存庫,並開始聞起來。
是否有一種常見的方法來設計存儲庫和服務類,使服務不需要這麼多的存儲庫?
這裏有我的想法,我只是不知道哪一個是正確的:
1)這是一個跡象,我應該考慮合併/編組我的倉庫到表中的相關部分,減少的數量或依賴庫每服務類別。但是,這種方法的問題在於它會使我的存儲庫膨脹並使其複雜化,並使我無法爲所有存儲庫(數據檢索/更新的標準方法)使用通用接口。
2)這是一個標誌,我應該考慮根據我的存儲庫(表格)將我的服務分成組。問題在於我的一些服務方法共享通用實現,並且在類之間打破這些方法可能會使我的依賴關係複雜化。
3)這是一個跡象,我不知道我在做什麼,並有一些根本錯誤,我甚至無法看到。
UPDATE:對於我如何實現EF4和資料庫的想法,請在CodePlex上this sample app(我用version 1)。然而,看看那裏(和這裏)的一些評論,看起來像我需要做更多的閱讀,以確保這是我想要採取的路線 - 聽起來可能不是。
EF4或4.1?存儲庫模式和工作單元在4.1中的'DbContext'模板的上下文中構建(也許,可以對模板進行單線調整...) –
EF4(不是4.1)。我應該考慮轉向4.1嗎?遷移有多難? –
您需要拋棄舊的模板/模型代碼生成,並生成一個新模板,但類名相同。只需點擊幾下即可。你的上下文(也可能是數據集)上的一些基本方法將會中斷,這取決於你使用多少種方法來影響它們的影響程度。我相信這些將主要是文本上的變化,而不是交換出很多邏輯。 –