【问题标题】:Could not connect to MySQL through EF6 in Visual Studio 2013无法在 Visual Studio 2013 中通过 EF6 连接到 MySQL
【发布时间】:2016-10-07 20:48:45
【问题描述】:

我正在尝试在 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 中的所有实体标签。 我也尝试安装更高版本的实体,例如:

Install-Package EntityFramework -Version 5.0.0

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

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

【问题讨论】:

    标签: c# mysql visual-studio-2013 entity-framework-6 visual-studio-2019


    【解决方案1】:

    这对我有用,无需重新安装 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>

    【讨论】:

    • 错误消失了,但点击下一步按钮后什么也没发生。
    • 谢谢.. 你刚刚拯救了我的早晨 :)
    • @pArthsavadiya 更新实体框架和MySql nuget包后尝试重建项目。
    • 我已经更新了 MySQLconnector 的版本,但我仍然收到同样的错误 `
    【解决方案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>

    【讨论】:

      【解决方案3】:

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

      请按照以下步骤解决您的问题: https://gist.github.com/pishangujeniya/41a051572a471fa0311a8f4f6d0c5332

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

          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>
          

          【讨论】:

            猜你喜欢
            • 2014-12-04
            • 1970-01-01
            • 1970-01-01
            • 2014-04-03
            • 2016-07-24
            • 1970-01-01
            • 1970-01-01
            • 2017-04-26
            • 1970-01-01
            相关资源
            最近更新 更多