.net 在dbContext程序集外部配置实体框架

.net 在dbContext程序集外部配置实体框架,.net,asp.net-mvc,entity-framework,asp.net-core-mvc,.net,Asp.net Mvc,Entity Framework,Asp.net Core Mvc,我的应用程序有一个数据访问层(DAL),它包含dbContext定义。我正在使用SqlServer数据库 由于启动项目是一个ASP.NET核心MVC项目(UI),我将App.Config从DAL项目复制到UI项目 问题是UI项目没有引用DAL项目(我使用依赖注入来获取具体类型);因此,UI项目无法找到SqlServer提供程序,我得到以下错误: 实体框架提供程序类型 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramewor

我的应用程序有一个数据访问层(DAL),它包含dbContext定义。我正在使用SqlServer数据库

由于启动项目是一个ASP.NET核心MVC项目(UI),我将App.Config从DAL项目复制到UI项目

问题是UI项目没有引用DAL项目(我使用依赖注入来获取具体类型);因此,UI项目无法找到SqlServer提供程序,我得到以下错误:

实体框架提供程序类型 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer已在应用程序配置文件中注册 对于具有固定名称“System.Data.SqlClient”的ADO.NET提供程序 无法加载。确保程序集限定名为 已使用,并且程序集对正在运行的应用程序可用


确保将提供程序DLL复制到web应用程序的输出目录。。通过引用或在生成后事件中复制,确保将提供程序DLL复制到web应用程序的输出目录。。无论是通过引用它,还是通过在构建后事件中复制它

都可以看到您对松耦合需求的评论。我已经走过这条路很多次了。能否提供一个示例,说明如何将数据从DAL层传递到UI层?UI项目引用域项目,DAL项目也引用域项目。然后我有一个引用域和DAL项目的“容器”项目;这就是接线的地方。我从ASP.NET核心MVC项目中的
Startup.ConfigureServices
方法调用此代码。@trevorc:您有更好的方法吗?我(相信)有。它没有你所追求的100%松耦合,但是它很好地解耦了,并且随着时间的推移可以进行升级/更改。@T.S.下面的评论相当准确。我只是在我的github页面上贴了一个可能会被证明有用的标签。如果你有任何问题,请告诉我。我们可以在聊天中讨论。看到了您对松耦合愿望的评论。我已经走过这条路很多次了。能否提供一个示例,说明如何将数据从DAL层传递到UI层?UI项目引用域项目,DAL项目也引用域项目。然后我有一个引用域和DAL项目的“容器”项目;这就是接线的地方。我从ASP.NET核心MVC项目中的
Startup.ConfigureServices
方法调用此代码。@trevorc:您有更好的方法吗?我(相信)有。它没有你所追求的100%松耦合,但是它很好地解耦了,并且随着时间的推移可以进行升级/更改。@T.S.下面的评论相当准确。我只是在我的github页面上贴了一个可能会被证明有用的标签。如果你有任何问题,请告诉我。我们可以在聊天中讨论。