我将 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 连接器问题。