在 Visual Studio 2013 年无法通过 EF6 连接到 MySQL

Could not connect to MySQL through EF6 in Visual Studio 2013

我正在尝试使用 visual studio 中的 EF6 连接到 MYSQL 数据库,后来我使用 SQL 并且它工作正常之后我转移到 Mysql 然后我安装这样的必需组件:

错误说:

Your project references the latest version of Entity Framework; however, an Entity Framework database provider compatible with this version could not be found for you data connection. Exit this wizard, install a compatible provider, and rebuild your project before performing this action

我尝试了可能的在线解决方案,例如 重新安装 这个组件,但它没有用, 否则,我试图将这样的代码添加到我的 App.config 中:

<configuration> <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> </configuration>

但它面临着同样的命运,或者事件清除了我的 app.config 中的所有实体标签。 我还尝试安装更高版本的实体,例如:

Install-Package EntityFramework -Version 5.0.0

但它得到:Install failed. Rolling back... Install-Package : Already referencing a newer version of 'EntityFramework'.

谁能帮我确定我该怎么做?

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

  • 安装了最新的MySQLvisual studio插件和MySQL连接器网络
  • 删除了 App.config 或 Web.config 中的 entityFramework 标签及其所有子标签。
  • 将其替换为以下代码:

<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>

我也是按照上面的方法解决的

例如我的步骤:

  • 使用 NuGet
  • 安装最新的 EntityFramework
  • 安装最新的MySql.Data.Entity

  • 在 C:\Program Files (x86)\MySQL\MySQL Connector Net 6.8.3\Assemblies\v4.5

    [=27= 添加引用所有 4 个文件]
  • 将Web.config中的entityFramework替换为如下:

    <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 更新为 8.0 并且在 [=21= 中遇到问题]EntityFramework集成,那么我集成成功,记录下我的所有步骤。

Follow this to get your issue solved: https://gist.github.com/pishangujeniya/41a051572a471fa0311a8f4f6d0c5332

对于遇到与我相同问题的其他人,VS2019 的管理 Nuget 包 window 有点隐藏了我需要的包,我做了几个错误的假设。我正在创建一个 .Net Framework class 库来包装我的数据库,8.20.0 的 Nuget 包的命名与 6.x.x 不同。我需要 MySql.Data 和 MySql.Data.EntityFramework。第二个有一个 .Net Core 版本,名称相似 MySql.Data.EntityFrameworkCore。可惜没有更好的错误报告。

我通过合并一些解决方案解决了这个问题:) 使用此步骤:

  1. 安装了最新的 MySQL visual studio 插件和 MySQL 连接器网络
  2. 删除了 App.config 或 Web.config 中的 entityFramework 标签及其所有子标签。
  3. 将其替换为以下代码:
<entityFramework>
    <providers>
       <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework" />
    </providers>
</entityFramework>