【发布时间】:2018-08-16 21:44:22
【问题描述】:
我正在尝试从新的 Asp Net Core 2.0 Web 应用程序调用 .Net 4.7 数据访问库(使用 Entity Framework 6)。
问题在于 EF6 似乎无法获取 DbProviderFactory。我的工作理论是,这应该在调用程序的 app/web.config 中提供。我得到的错误是:
System.TypeLoadException: '无法加载类型 来自程序集“System.Data”的“System.Data.Common.DbProviderFactories”, 版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089'.'
为了规避这个问题,我创建了一个 DbConfiguration 类:
public class MyDbConfiguration : DbConfiguration
{
public MyDbConfiguration()
{
SetProviderFactory("System.Data.SqlClient", System.Data.SqlClient.SqlClientFactory.Instance);
SetProviderServices("System.Data.SqlClient", SqlProviderServices.Instance);
}
}
[DbConfigurationType(typeof(MyDbConfiguration))]
public class MyDbContext : DbContext, IMyDbContext
{
public MyDbContext(string connectionString)
: base(connectionString)
{
}
断点表明它正确执行了 MyDbConfiguration,但仍然抛出错误。我已经在 .Net Core Web 应用上安装了 System.Data.SqlClient 和 System.Data.Common 包。
我没有发现任何明确说明我想要做的事情(通常)是不可能的,所以我假设我的 DBConfiguration 实现有问题。请有人指出我正确的方向吗?
【问题讨论】:
标签: .net asp.net-core entity-framework-6 asp.net-core-2.0 .net-4.7