【发布时间】:2018-12-07 15:22:40
【问题描述】:
我正在尝试在类库项目 .Net Framework 4.6.2(存储库项目)中使用 EF6.0,其中 DBContext 位于存储库旁边,并且实体已在不同的项目中创建(.NET 框架 4.6.2)使用反向代码优先 POCO, 存储库将通过在 ASPNET Core 2.0 SPA 项目中引用的另一个(框架 4.6.2)管理器项目调用,其中 StructureMap 用作 IoC。
我遇到的第一件事是将连接字符串传递给存储库项目中的 DBContext 的问题,因为我想在存储库项目中注册服务(DBContext,Repository)而不是从 ASPNET Core Startup.cs,原因那是为了避免将 DBContext 暴露给前端项目,无论如何我最终还是暂时硬编码了 Repo Project 中的连接字符串,“如果有其他方法,请欣赏!”
我在这个设计中面临的主要问题是,当请求发送收集“产品”列表时,它到达了 Linq 语句使用 _dbcontext.Product 的存储库项目,然后抛出错误消息
NotSupportedException:无法确定“System.Data.SqlClient.SqlClientFactory”类型的提供程序工厂的提供程序名称。确保在应用程序配置中安装或注册了 ADO.NET 提供程序。
Entityframework 注册在 Repository 项目中,但不在 ASPNET Core 2.0 项目中,因为它在安装到 ASPNET Core 2.0 时会显示 Nuget 冲突错误。
我也尝试在 ASPNET Core2.0 中从 Nuget 安装“System.Data.SqlClient”,但仍然抛出错误。
关于如何在 ASPNET Core 2.0 项目中引用的 .netframework 4.6.2 类库项目中使用 EF6.0 的任何想法。
【问题讨论】:
标签: entity-framework-6 asp.net-core-2.0 ef-core-2.0