实体框架。您的项目引用了最新版本的实体框架错误VS2017 MYSQL 8.0.12 [英] Entity Framework. Your Project References the latest version of entity framework error VS2017 MYSQL 8.0.12

查看:119
本文介绍了实体框架。您的项目引用了最新版本的实体框架错误VS2017 MYSQL 8.0.12的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有Entity Framework 6.2的Visual Studio 2017项目

I have a Visual Studio 2017 project that has Entity Framework 6.2

尝试创建edmx文件时出现错误

When trying to create the edmx file I get the error


您的项目引用了最新版本的Entity Framework;
,但是找不到与该
版本兼容的Entity Framework数据库提供程序为您提供数据连接

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

我已经经历过很多次了,但始终可以通过使用连接器安装文件夹中的dll并对app.config进行一些更改来修复它。

I have had this many times but it has always been fixed by using the dlls from the connector installation folder and making some changes to the app.config

但是我无法获得它现在可以这样工作。我不知道下一步该怎么做...我正在使用MYSQL 8.0.12

However I can not get it to work this way now. I have no idea what to try next... I am using MYSQL 8.0.12

这是我的app.config

This is my app.config

<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <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>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-8.0.12.0" newVersion="8.0.12.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>


推荐答案

不确定是否仍然可以解决。但是,下面的解决方案可能对正在苦苦挣扎的人有所帮助。

Not sure if this is still solved are not. However, the below solution might be helpful for someone who is struggling.

是否安装了任何版本的连接器都没有关系,因为不会自动引用该连接器VS2017。唯一重要的是 MySQL for Visual Studio。

It doesn't matter if you have installed any version of connector as it is not being automatically referenced in VS 2017. Only thing that matters is "MySQL for Visual Studio".


  1. 安装 MySQL for visual studio (最好是任何最新的1.2.8或2.0版本。 5)
    如果您在尝试安装2.0.5时遇到任何问题,请点击以下链接: https://forums.mysql.com/read.php?174,664930,664971

  1. Install "MySQL for visual studio" (preferably any latest version 1.2.8 or 2.0.5) In case you face any issue while trying to install 2.0.5 please follow this link : https://forums.mysql.com/read.php?174,664930,664971

在项目内部,将Nuget引用添加到 MySQL.Data.EntityFrameWork
(V 8.0.13或更高版本)

Inside your project, Add Nuget References to "MySQL.Data.EntityFrameWork" (V 8.0.13 or higher)

默认情况下,它将创建以下App.Config文件

It will by default create the below App.Config file

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework, Version=8.0.13.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d">
      </provider></providers>
  </entityFramework>
</configuration>

去..它应该工作正常。我花了超过2天的时间,(几乎)搜索了整个google,以发现所有参考/方向/建议都指出了 MySql.Data.Entity.EF6 。而 MySql.Data.EntityFramework在VS 2017上可以正常使用

And there you go.. It should work fine. I have spent more than 2 days, searching the entire google (almost) to figure that all the references/directions/suggestions were all pointing out "MySql.Data.Entity.EF6".. While all the while it is "MySql.Data.EntityFramework" that works fine with VS 2017

这篇关于实体框架。您的项目引用了最新版本的实体框架错误VS2017 MYSQL 8.0.12的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆