小编Chi*_*ara的帖子

从 MVC 项目中删除实体框架引用

抱歉,如果已经回答了这个问题,但经过 2 个小时的研究,我还没有找到这个问题的明确答案。希望询问会产生结果。

我在 MVC 和 EF 方面“比初学者要好一些”,但我确实了解整体应用程序架构。你看,为了更大的关注点分离和未来计划的更改,我想我的 MVC 项目与实体框架分离。这是我到目前为止所拥有的:

  • 模型项目(充满注释良好的 POCO,作为容器,没有业务逻辑)
  • DataAccess 项目(参考我的模型项目和实体框架)
  • MVC Web 项目(仅引用我的模型项目)

我已经创建了我的存储库模式(在 DataAccess 项目中),并使用单独的 UnitTest 项目对其进行了测试。这一切都有效。

问题是,使用者(在本例中为 UnitTest 项目)仍然需要对实体框架的 nuget引用(与 MVC Web 项目相同)。当我从我的测试项目中删除 EF 引用时(而是在将它传递到我的 DataAccess 项目时硬编码我的连接字符串),我收到此错误:

未找到具有不变名称“System.Data.SqlClient”的 ADO.NET 提供程序的实体框架提供程序。确保提供程序已在应用程序配置文件的“entityFramework”部分注册。

我如何设计它以便我可以从存储库使用者(UnitTest 或 MVC Web 项目)中完全删除实体框架引用?我想通过我的 Repository 做所有事情,而 MVC 项目对我的 ORM 技术一无所知。

c# architecture asp.net-mvc entity-framework repository-pattern

5
推荐指数
1
解决办法
4496
查看次数