找不到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
并找到这个答案来解决它:
您可以尝试两种选择。
1)手动加载“System.Data.SqlClient”
在上下文类中包含follow语句
var type = typeof(System.Data.Entity.SqlServer.SqlProviderServices);
2)不要加载“System.Data.SqlClient”
通过改变
至
我希望你的问题得到解决。