我正試圖圍繞IoC容器包裝頭部。隨着我深入探究這種設計模式,在我簡單地實例化一個數據上下文類之前,我會遇到許多抽象層,接口和具體類,然後使用它,然後處理它。如何在MVC Web應用程序中使用E.F實現IoC容器
雖然我很想繼續前進,但仍有一些突出的問題,我不知道如何解決,希望得到一些澄清和指導。
在具有2個項目(MVC幅&數據層 含有EF)的通用web應用程序,如果我們的扶養解析器期望的存儲庫 實現特定接口(允許我們在任何時間切換 庫未來),界面 在哪裏定義?我沒有看到它是如何在mvc web項目中定義的,因爲那麼數據訪問層將依賴於它,並且它不能駐留在數據訪問層中,因爲mvc項目取決於dal,而且我錯過了整個點這個練習。那麼 的答案是在兩個項目中定義它,並讓每個項目 引用它自己的副本?這甚至可能嗎?或者我需要 創建第三個服務層項目並在其中粘貼一個界面 聲明,並讓這兩個項目都引用它?
我看過一些文章談到團結IoC和 接口,如IProductRepository,IClientRepository和 IProductService,IClientService(這就是我指的是在 我的首段)。我是否正確地假設這些 實例中的每一個都應該在我的數據庫中引用一個表?如果是的話 如果我有50張桌子會發生什麼?我是否需要創建50個存儲庫 接口和50個表相關的接口來解耦所有內容? 如何使用EF與POCO類影響事物?我需要 每個POCO都實現它自己的指定接口嗎?
感謝
不要將邏輯層(表示,數據,業務)與物理層(mvc項目/程序集,數據)混淆。一個應用程序可以在一個物理組件中,並且仍然在邏輯上分層結構,不會直接與彼此進行對話,在必要時注入組件。 – Maarten 2016-04-28 10:18:23