8

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

  • 适用于 Visual Studio 1.1.1 的 MySQL
  • MySQL 连接器/网络 6.8。

错误说: 在此处输入图像描述

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

我尝试了可能的在线解决方案,例如 重新安装此组件但它不起作用,否则我试图将这样的代码添加到我的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。我也尝试安装更高版本的实体,例如:

安装包 EntityFramework -版本 5.0.0

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

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

4

5 回答 5

15

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

  • 安装了最新的 MySQL Visual 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>

于 2016-06-08T23:04:26.857 回答
2

我以与上述相同的方式解决。

我的步骤例如:

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

  • 添加引用 C:\Program Files (x86)\MySQL\MySQL Connector Net 6.8.3\Assemblies\v4.5 中的所有 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>

于 2018-07-13T02:24:07.430 回答
0

如果您已将MySQL更新到8.0并在Visual Studio EntityFramework集成中遇到问题,那么我已成功集成并记录了我的所有步骤。

按照这个来解决你的问题: https ://gist.github.com/pishangujeniya/41a051572a471fa0311a8f4f6d0c5332

于 2019-04-18T06:56:44.923 回答
0

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

于 2020-06-05T20:30:15.530 回答
0

我通过合并一些解决方案来解决问题:) 使用以下步骤:

  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>
于 2020-11-01T17:02:07.567 回答