我正在设置一个项目,并将各层分为表示层、业务层和数据层。
演示引用商业 数据引用 业务 企业只知道自己
对于表示层,我使用 MVC,对于数据层,我使用 Entity Framework 。在使用 MVC 应用程序时,使用 IOC 通过业务层访问数据库时出现以下错误
未找到具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序的 Entity Framework 提供程序。确保提供程序已在应用程序配置文件的“entityFramework”部分中注册
如果我使用 nuget 将 Entity Framework 添加到 MVC 项目中,一切都会很好并且工作正常。然而,我的目的是分离层,所以这样做看起来很奇怪。
您对如何解决这个问题有什么想法吗?
谢谢
最佳答案
如果您使用单个项目将所有这些层组合在一起,则没有其他方法。必须为使用 Entity Framework 的项目指定 Entity Framework 配置。但是,这并不一定会破坏您的目标分层结构。尽管表示层实际上可以直接访问数据而不是通过数据层,但您可以将其设计为不这样做,即始终使用数据提供程序获取数据(例如使用 UnitOfWork)。
另一种方法是为每一层创建单独的应用程序/项目。您的数据层将是一个“独立”项目,具有自己的配置。然后,您的表示层将引用数据层项目,并通过它提供的方法与其进行通信,以交换数据。
关于.net - Entity Framework 与表示层分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25743418/