找不到entity frameworkADO.NET Sql.Data.Client提供程序

我有一个问题类似于没有entity framework提供程序为ADO.NET提供程序找到的具有不变名称’System.Data.SqlClient’的问题 ,该错误有以下消息:

“具有不变名称’System.Data.SqlClient’的ADO.NET提供程序未在机器或应用程序配置文件中注册,或者无法加载。有关详细信息,请参阅内部exception。”

正如相关问题的答案所示,我已经通过软件包管理器控制台重新安装了entity framework(EF6),但错误仍然存​​在。 我还检查了我的项目中引用了EntityFramework.SqlServer.dll。 这是存储在App.config中的连接字符串:

 

我有另一个项目,我使用EntityFramework创建完全相同的实体和上下文,它工作正常,这使得这更令人费解。

尝试执行此行时会显示错误:

 DesignModel designContext = new DesignModel(); designContext.MoPerfIDs.Load(); 

其中DesignModel是inheritanceDbContext的类的名称。

这是完整的App.config:

     

任何帮助将不胜感激。 提前致谢。

您需要为System.Data.SqlClient SQL连接类型注册entity framework提供程序。 你应该在app.config中:

   

仍然不确定导致问题的原因,但最终创建了一个新的解决方案,并从我的项目中复制了所有内容。 现在工作正常。 确实非常奇怪。

哇……这很特别……不管怎么说。 您需要为System.Data.SqlClient SQL连接类型注册entity framework提供程序。

您想将以下内容添加到app.config / web.config

   

尝试添加

var _ = System.Data.Entity.SqlServer.SqlProviderServices.Instance;

在你的designContext的ctor中。

我的问题是,为了捕获另一个exception,我启用了CLRexception。 我忘了禁用它。

我在我的例外设置中禁用了它。 它忽略了这个exception并继续运行并自动为我创建一个db(在我的例子中)。

只需从nuget安装“MySql.Data.Entity”即可! 它将自动安装mysql ado驱动程序和实体驱动程序!

我得到了这个错误,但对我来说这是完全不同的东西。

我不得不编辑:

 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config 

和:

 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config 

搜索DbProviderFactories这两个配置看起来像这样:

       

当我删除尾随的一切都开始工作了。

我只能通过查看Unable to find the requested .Net Framework Data Provider并找到这个答案来解决它:

https://stackoverflow.com/a/9929534/3850405

您可以尝试两种选择。

1)手动加载“System.Data.SqlClient”

在上下文类中包含follow语句

var type = typeof(System.Data.Entity.SqlServer.SqlProviderServices);

2)不要加载“System.Data.SqlClient”

通过改变

         

         

我希望你的问题得到解决。