首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >2013年Visual中MySQL连接器与EF6的连接

2013年Visual中MySQL连接器与EF6的连接
EN

Stack Overflow用户
提问于 2014-10-09 13:58:57
回答 14查看 27.8K关注 0票数 21

我正试图通过C# C# .NET web应用程序连接到.NET。

我的问题是,当我试图添加一个基于我的ADO.NET连接从数据库生成的MySQL实体数据模型时,我会得到以下错误消息:

您的项目引用了实体框架的最新版本;但是,无法为您找到与此版本兼容的实体框架数据库提供程序。退出此向导,安装兼容的提供程序,并在执行此操作之前重新构建项目。

我正在运行以下软件、升级和附加程序:

  • 2013
  • MySQL服务器5.6.21
  • VisualStudiov1.2.3的MySQL
  • 连接器/网v6.9.4

NuGet包:

  • EntityFramework v6.1.1
  • MySQL.Data v6.9.3
  • MySQL.Data.Entities v6.8.3.0
  • SQL.Web v6.9.3

我的web.config,entityFramework块:

代码语言:javascript
复制
    ..
</system.webServer>
<entityFramework>
  <defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
  <providers>
    <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
  </providers>
</entityFramework>
<runtime>
    ..

我已经看过所有其他的解决方案,我可以在这里找到所以和一般通过谷歌,尝试了所有的解决方案,似乎没有一个解决方案是有效的,或已经适用于非常不同版本的连接器/网络或其他所需的程序。

有人能发现我做错了什么吗?

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2014-10-14 12:44:50

基本的解决方案是重新安装MySQL和VisualStudio ,包括实体和.NET。

由于某些原因,我不确定为什么安装过程会破坏DLL,或者至少这是我和其他同事的经验。我们的解决办法是尝试以上所有措施,但都徒劳无功。最后我们试着重新安装,结果成功了。试试看:)

票数 8
EN

Stack Overflow用户

发布于 2014-11-20 07:44:39

我也有过同样的问题。安装后:

  • Visual 2013社区版
  • 1.2.3的MySQL
  • MySQL连接器.NET 6.9.5

我不想重新安装Visual,因此经过一些测试后,我发现文件夹"C:\Program (x86)\Microsoft“包含以下文件的旧版本:

  • MySql.Data.dll
  • MySql.Data.Entity.EF6.dll
  • MySql.Web.dll

关闭Visual后,我将这些文件替换为"C:\Program (x86)\MySQL\MySQL连接器网6.9.5\Assemblie\v4.5“中的文件,现在它可以工作了!

注意:用系统中安装的实际版本替换上面子文件夹名称中的6.9.5。

票数 23
EN

Stack Overflow用户

发布于 2015-06-12 15:29:15

这对于我来说是有效的,而不需要重新安装Visual或其他任何东西。

  • 安装了最新的MySQL visual studio插件和MySQL连接器网
  • 删除了、App.config或Web.config中的entityFramework标记及其所有子标记。
  • 用以下代码替换了
代码语言:javascript
复制
<entityFramework>
  <defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
  <providers>
    <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
    <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
  </providers>
</entityFramework>
  • 添加了 MySql.Data.dll、MySql.Data.Entity.EF6.dll和MySql.Web.dll(如果不是WPF应用程序)对项目的引用。
  • 重建了项目,然后添加了ado.net模型。

注意entityFramework __:确保只移除标记及其子标记,并将其替换为上面的片段。如果您删除任何“额外”标记,您可能会有更大的问题,您的项目,就像我一样。x)

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26280396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档