在Visual Studio 2013中使用EF6的MySQL连接器

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

我的问题是,当我尝试根据我的MySQL连接添加从数据库生成的ADO.NET实体数据模型时,我收到以下错误消息:

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

我正在运行以下软件,升级和附件:

  • Visual Studio 2013
  • MySQL Server v5.6.21
  • MySQL For Visual Studio v1.2.3
  • Connector / NET 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块:

..         .. 

我已经查看了我可以在这里找到的所有其他解决方案,通常通过谷歌,尝试了所有这些解决方案似乎没有工作或已经用于非常不同版本的Connector / NET或其他所需的程序。

谁能发现我做错了什么?

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

出于某种原因,我不确定为什么,安装过程会破坏DLL,或者至少这是我和其他同事的经历。 我们的解决方案是尝试以上所有方面都无济于事。 所以最后我们尝试重新安装,并且它有效。 所以尝试:)

我遇到过同样的问题。 安装后:

  • Visual Studio 2013社区版
  • MySQL for Visual Studio 1.2.3
  • MySQL Connector .NET 6.9.5

我不想重新安装Visual Studio,所以经过一些测试,我发现文件夹“ C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ PrivateAssemblies ”包含以下文件的旧版本:

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

关闭Visual Studio后,我用“ C:\ Program Files(x86)\ MySQL \ MySQL Connector Net 6.9.5 \ Assemblies \ v4.5 ”中的文件替换了这些文件,现在它可以工作了!

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

这对我有用,无需重新安装Visual Studio或任何其他任何东西。

  • 安装了最新的MySQL visual studio插件和MySQL连接器网
  • 删除了App.config或Web.config中的entityFramework标记及其所有子标记。
  • 以下代码替换它:
        
  • 添加了 MySql.Data.dll,MySql.Data.Entity.EF6.dll和MySql.Web.dll(如果不是WPF应用程序)对项目的引用。
  • 重建项目,然后添加ado.net模型。

注意 :确保仅删除entityFramework标记及其子标记,并将其替换为上面的剪切标记。 如果删除任何“额外”标签,您的项目可能会遇到更大的问题,就像我一样。 X)

只需添加到web.config:

        

在尝试再次添加从Database生成的ADO.NET实体数据模型之前,请不要忘记重建解决方案

我遇到了同样的问题。 幸运的是,我修复了它。 MySql.Data.dll或MySql.Data.Entity.EF6.dll与EF 6.1 up版本不兼容。 我做了什么,我通过这个命令 – > install-package entityframework -version 6.0.0.0在nuget console中安装了EF版本6.0.0.0并解决了这个问题。

如果您需要将EntityFramework与mysql数据库一起使用,则只需使用包管理器控制台安装较旧版本的EntityFramework,如v 5.0。 编写Install-Package EntityFramework -Version 5.0.0。 请享用。 https://www.nuget.org/packages/EntityFramework/5.0.0

现在这不是我自己的问题,但我找到了以下可能的解决方案:

  1. 右键单击解决方案(解决方案资源管理器中的顶级)。
  2. 管理Nuget包以获得解决方案。
  3. 转到“已安装”选项卡。
  4. 对于所有与EntityFramework相关的包(MySql.Data,MySql.Data.Entities,MySql.ConnectorNET.Entity和MySql.ConnectorNET.Data),选择它们,然后选择“管理”按钮。
  5. 为所有项目启用每个包。

我在这里注意到的是他有两个额外的包,你没有提到“MySql.ConnectorNET.Entity”和“MySql.ConnectorNet.Data”。 可能是您缺少这些并且需要使用Entity Framework 6.1.1

(来源: 找不到entity framework提供商 )

我有一个工作项目与MySQL连接器库和EF6 v6.0.0版本6.8.3。 我记得这个错误,我想我解决了手动向app.config添加一些行。

我列出了我的app.config中与EF6和MySQL配置相关的行,与你的不同,也许它可以帮到你:

  ... 

我已经安装了MySQL Connector Net 6.8.3,并从MySQL站点下载了软件包,并添加了两个对项目的引用:MySql.Data和MySql.Data.Entity.EF6,两者都是6.8.3versión(我注意到你使用的是不同的版本)这些文件…)。

我通过Nuget将EF6(v 6.0.0)添加到项目中。

不是最新版本,但希望这会有所帮助。

解决方案是将此添加到您尝试添加/修改数据模型的项目上的app.config / web.config

        

根据您的连接器更改版本。

首先,重新安装vs 1.2.3,将以下引用添加到您的项目或检查它的版本:

MySql.Data.dll

MySql.Data.Entity.EF6.dll

MySql.Web.dll

删除App.config中的默认entityFramework标记或Web.config重建项目,可以添加ADO.NET实体数据模型

我当时正在使用visual studio 2013社区。 想在MySQL db上做Code First。 我遇到了同样的问题“您的项目引用了最新版本的Entity Framework; …”解决了我的问题的原因是下面给出的简单步骤。

  1. 添加项目后,使用nuget console通过install-package EntityFramework添加EntityFramework6.1.3
  2. 用户控制台通过MySQL.Data.Entity添加MySQL引用
  3. 打开Web.config或App.config以更改entityframework和system.data部分,如下所示

                    
  4. 此时,请确保重建项目。 (必须的)

  5. 现在添加ADO实体模型并选择MySQL并且它可以工作。

顺便说一句,我使用的插件是M4VS 1.2.3和MySQL .NET Connector 6.9.7

很简单,我使用Nuget引用MySQL.dll(等),它自动引用.net 4.0 dll。 我刚刚将引用更改为4.5并且它有效。

在nuget命令行中执行

 update-package -reinstall -ignoreDependencies 

并重建这项工作或我的解决方案

我添加了这个为我解决了它:

          

2018年仍有问题……

数据库优先方案:对于Visual Studio 2017社区版,我找到了工作组合:

  • MySQL for Visual Studio 1.2.8
  • MySQL Connector .NET 6.9.9
  • EntityFramework 5.0.0(我为v6.x尝试了不同的组合而没有运气)

Code-First场景我可以使用官方文档https://dev.mysql.com/doc/connector-net/en/connector-net-entityframework60.html与最新的Connector v.8.0.11和EF6一起运行。