道歉,这已经回答了,但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引用? –