21

我将 VS2010 与MySQL .NET Connector一起使用。我曾经工作的项目开始报告:

错误 175:找不到指定的数据存储提供程序或无效。

我不知道为什么,尽管在 MS 向 VS 推荐了修补程序之后事情变得很奇怪。

果然,如果我去向项目添加一个测试 ADO.NET 实体数据模型,当我选择“从数据库生成”时,生成 .edmx 文件的实体数据模型向导不会显示数据提供者。更糟糕的是,右键单击并尝试在现有的 .edmx 文件上执行“从数据库更新模型...”会使 VS2010 陷入只能通过任务管理器终止的对话框的死亡螺旋。

这是我修复它的方法:关闭 VS2010。完全卸载 MySQL 连接器。重启。完全安装 MySQL 连接器。重启。重启VS2010。

突然间,我的数据提供者存在了。我可以编译我的代码。以及添加测试 .edmx 文件。向导会看到我的 MySQL 数据库,通过测试连接,并使用我的关系表构建对象模型。我可以随心所欲地清理/重建。

在我运行应用程序之前一切都很好。我的“修复”没有坚持。

此时会抛出一个异常,指出连接对象返回 null,如果我在没有更改代码的情况下重新编译,我会再次收到 Error 175 错误。起泡,冲洗,重复。

基于此 StackOverflow 答案的一些实验表明,连接字符串是有效的,并且使用 MySqlConnection 对象,我可以访问数据库并在此状态下滚动我自己的工作查询。

问题似乎是数据存储提供者不知何故迷路或踩到了,这影响了通过 EntityFrameworks 做事的能力。

我正在寻找一些关于在哪里寻找这些存储的建议,如果有人遇到过类似的事情,如果有任何有用的建议或想法你认为我可以尝试。  

更新——虽然这个花絮并没有解决我的问题,但它确实使 VS2010 更加稳定:卸载 .NET 连接器后,我立即检查了控制面板的已安装程序,发现还安装了一个较旧的 .NET 连接器。我从控制面板卸载了那个,重新启动,然后安装了新的。VS2010 现在记住了使用 EntityFrameworks 的数据库提供程序。显然我安装了一个较新的 MySQL 连接器,认为它会卸载旧的连接器,而是它们相互交叉。

现在我得到一个System.ArgumentException内部System.Data.Entity.dll说明略有不同的信息:

在配置中找不到指定的商店提供程序,或无效。System.ArgumentException:找不到请求的 .Net Framework 数据提供程序。它可能没有安装。

这发生在System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName)方法上。

修订说明-- 上述删除的原因是 VS2010 最终确实再次丢失了设置。但我能够从控制面板卸载 .Net 连接器并再次重新安装连接器,而无需重新启动,并让我的数据提供程序再次回到环境中。这部分问题感觉更像是 VS2010 错误,而不是 .NET 连接器问题。

4

6 回答 6

4

重新安装 Windows 后我遇到了同样的错误,忘记添加 SQlite 的提供程序。
它就在这里,尽管它没有提到它,但它完全支持 VS 2010。

于 2011-07-28T04:28:07.730 回答
1

重大更新后问题消失了——毕竟它似乎是一个环境/驱动程序错误。

于 2011-07-19T14:16:50.057 回答
1

我刚刚重新启动了我的 VS2010,错误就消失了!!

于 2012-03-04T16:25:58.547 回答
0

根据网上的一些评论,这可能与提供商不在 GAC 中有关。

也可能是旧版本是 GAC。

检查 GAC 中的内容,如果缺少,请将 dll 添加到 GAC。在 GAC 中进行任何更改后重新启动计算机。

于 2011-02-02T19:57:04.633 回答
0

我只需重新启动 IDE 即可修复错误。

于 2011-11-22T09:47:45.643 回答
0

我最近遇到了这个错误,经过多次重新启动/重新安装后发现问题实际上是“连接器”用户在视图上的权限不足。

于 2012-12-10T15:59:31.483 回答