【发布时间】:2017-03-24 16:58:23
【问题描述】:
我的应用程序有一个数据访问层 (DAL),其中包含 dbContext 定义。我正在使用 SqlServer 数据库。
由于启动项目是一个ASP.NET Core MVC项目(UI),我从复制了App.Config >DAL 项目到 UI 项目。
问题是 UI 项目没有引用 DAL 项目(我正在使用依赖注入来获取我的具体类型);因此,UI 项目找不到 SqlServer 提供程序,我收到以下错误:
实体框架提供程序类型 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' 在应用程序配置文件中注册 对于具有不变名称“System.Data.SqlClient”的 ADO.NET 提供程序 无法加载。确保程序集限定名称是 并且该程序集可用于正在运行的应用程序。
【问题讨论】:
-
看到您对松散耦合的渴望的评论。我曾多次走这条路。您能否提供一个示例,说明您如何尝试将数据从 DAL 层传递到 UI 层?
-
UI项目引用Domain项目,DAL项目也引用Domain项目。然后我有一个引用域和 DAL 项目的“容器”项目;这就是接线发生的地方。我从我的 ASP.NET Core MVC 项目中的
Startup.ConfigureServices方法调用此代码。 -
@trevorc:你有更好的方法吗?
-
我愿意(我相信)。它没有您所追求的 100% 松散耦合,但它可以很好地解耦,并且可以随着时间的推移进行升级/更改。 @T.S. 下面的评论相当准确。我刚刚在我的 github 页面上贴了一个 seed project,这可能会被证明是有用的。如果您有任何问题,请告诉我。我们可以在聊天中讨论。
标签: .net asp.net-mvc entity-framework asp.net-core-mvc