【问题标题】:Configuring Entity Framework outside of dbContext Assembly在 dbContext 程序集之外配置实体框架
【发布时间】: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


【解决方案1】:

确保提供程序 DLL 被复制到您的 Web 应用程序的输出目录中。通过引用它,或者通过在构建后事件中复制

【讨论】:

    猜你喜欢
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 2013-03-07
    • 2018-07-22
    • 1970-01-01
    相关资源
    最近更新 更多