道歉,這已經回答了,但2小時後,研究我還沒有找到一個明確的答案這個問題。希望問會產生結果。去除MVC項目實體框架參考如果
我與MVC和EF「一定程度上比初學者更好」,但我不明白的整體應用架構。你看,爲了更大的分離關注和未來計劃的變更,我想與我的MVC項目從實體框架分離。這是我到目前爲止有:
- 模型項目(全註釋良好波蘇斯,集裝箱,沒有業務邏輯的)
- 數據訪問項目(參考我的模型的項目,和Entity Framework)
- MVC的Web項目(僅參考我的Models項目)
我已經創建了我的Repository模式(在DataAccess項目中),並使用單獨的UnitTest項目對其進行了測試。這一切都有效。
問題是,消費者(在這種情況下爲UnitTest項目)仍然需要實體框架(與MVC Web項目相同)的nuget 參考。當我(通過它的時候到我的數據訪問項目,而不是硬編碼我的連接字符串)請從我的測試項目中的EF參考,我得到這個錯誤:
No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'. Make sure the provider is registered in the 'entityFramework' section of the application config file.
我如何設計這個,所以我完全可以從存儲庫使用者(UnitTest或MVC Web項目)中刪除實體框架參考?我希望通過我的Repository完成所有工作,而不需要MVC項目瞭解我的ORM技術。
有趣。所以你可以進一步擴大。我怎麼能完全避免參考?而當我準備好脫離EF並使用不同的ORM時,是否唯一一次能夠從MVC項目中刪除EF引用? –