您的项目引用了最新实体框架;但是,找不到数据链接所需的与版本兼容的实体框架数据库 EF6使用Mysql的技巧

 

  

  在vs2013中使用mysql连接entityFramework经常会遇到这个问题:您的项目引用了最新实体框架;但是,找不到数据连接所需的与版本兼容的实体框架数据提供程序。请退出此向导,安装兼容提供程序,重新生成您的项目,然后再执行操作。

在vs中 使用mysql的问题多的会让人蛋疼。在这里给个妥妥的一条龙解说哈。

<无耐心看过程讲解的可直接看最下面>

    在创建实体模型的时候  数据源选项很可能没有MySql database,这问题很容易解决,只需要安装 mysql-for-visualstudio 即可解决,这里推荐版本是 mysql-for-visualstudio-1.2.3 。 还需要安装一个 MySQL Connector/Net , 我们来看一看来自官网的介绍:MySQL 官方的 .NET 驱动程序,MySQL 官方的 .NET 客户端开发包。mysql 数据库最新版dotnet数据库连接驱动。 所以 显而易见,这个程序必须装上,这里推荐版本是 mysql-connector-net-6.8.3 。 PS: 这里提醒下,这个版本不是越高的越合适,得配合你Mysql.data 的版本,目前大部分是使用mysql.data version 6.8.3 这版本。 如果安装高于 mysql-connector-net - 6.8.3 版本 , 安装后会修改VS下的machine.config :

<dependentAssembly>

<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="6.7.4.0" newVersion="6.8.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="MySql.Data.Entity" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="6.7.4.0" newVersion="6.8.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="MySql.Web" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="6.7.4.0" newVersion="6.8.3.0" />
</dependentAssembly>

<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />

这里是安装6.8.3 版本后 修改的machine.config

安装6.9.4版本,会时 newversion = "6.9.4"  会导致很多后期问题:例如 引用问题 : could not load file or assembly 'Mysql.Data, Versio=6.8.3'   错误号 : 0x80131040 这样的程序集不匹配问题,在很多论坛上都看到过这个问题,造成的办法也大多是因为machine.config 被修改,强制指向高版本,导致的程序集不匹配。

当然这里如果通过手动修改machine.config 解决这个问题,可以一时解决,但是会引起后期很多不必要的问题, 所以建议直接安装 mysql-connector-net - 6.8.3

以上这两个安装完之后,恭喜你, 进入下一个错误, vs里 就会提示上述图片的错误。

这个错误的解决方案 网上的答案可以说是 众多纷纭 奇葩朵朵开啊。 其实解决方案很简单,人家都说了,找不到数据连接所需的与版本兼容的实体框架数据提供程序。

这里需要先安装nuget 管理器

在 - 工具 - 库程序包管理器 - 程序包管理器控制台 这里 默认项目, 在PM>后 输入

Install-Package EntityFramework -Version 6.0.0
Install-Package EntityFramework.zh-Hans -Version 6.0.0
Install-Package MySql.Data.Entity.EF6

每一句输完 回车执行

允许重新加载config.

这时候在providers 里 添加一个mysql.data.MysqlClint节点, 这个步骤很重要。

<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"></provider>

效果如下

<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.Entity.EF6"></provider>

</providers>

到了这一步 ,重新生成一下方案  妥了!

哈哈 不是微软的亲儿子就是事多!

这里是个小总结。给急性子的朋友看:

需安装:

mysql-for-visualstudio-1.2.3

mysql-connector-net - 6.8.3

nuget 包管理器

nuget 控制台输入

Install-Package EntityFramework -Version 6.0.0
Install-Package EntityFramework.zh-Hans -Version 6.0.0
Install-Package MySql.Data.Entity.EF6

//Install-Package MySql.Data.Entity   //2015-08-20 去掉.EF6

在.config 的providers 加一个节点

<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"></provider>

完毕.

VS2013使用EF6与mysql数据库的更多相关文章

  1. Vs2013 使用EF6 连接mysql数据库

    最近在使用MySQL数据库,在使用EF框架连接MySQL数据库时发现了一个问题,使用DB First创建实体对象的时候会出现如下图的错误:您的项目引用了最新版实体框架….. (如下图)或者会出现新建实 ...

  2. VS2015 +EF6 连接MYSQL数据库生成实体

      VS2015 +EF6 连接MYSQL数据库生成实体   已安装软件:VS2015                       XAMPP Control Panel(Mysql服务器)      ...

  3. 使用VS2013 + EF6 连接Mysql数据库

    使用VS2013 + EF6 + .NET4.5 连接Mysql数据库 1.安装插件 在使用Visual Studio 2013添加ADO.NET实体数据模型新建连接时,默认是没有Mysql选项的.此 ...

  4. VS2013使用EF与mysql数据库.

    一个VS2013的mvc+EF+mysql的项目,需要连接Mysql数据库 一,下载一个mysql-for-visualstudio-1.2.3.msi,在自己的电脑上安装,这个是解决在创建实体模型( ...

  5. VS2013使用EF6连接MySql

    前提:a.安装MySql的VS插件(版本请下载最新版) 我用的是:mysql-for-visualstudio-1.1.4 b.安装用于.net连接程序  mysql-connector-net-6. ...

  6. EF6 Codefirst+MySql 数据库迁移

    简介 项目使用MSSql作为数据库,但是因为SQL服务器贵那么一点,并发连接差那么一点,要把数据迁移到MySQL,顺带迁移过程以及问题. 环境 Visual Studio 2013 MySQL 5.7 ...

  7. MVC4使用EF6连接mysql数据库

    1.需要安装MySql.Data.Entity.EF6,此dll可以在项目——>管理NuGet程序包里联机搜索MySql.Data.Entity.EF6并安装即可 2.连接字符串需要添加prov ...

  8. Entity Framework EF6使用 MySql创建数据库异常解决办法

    EF6使用MySQL数据库时,第一次创建数据库出现“Specified key was too long; max key length is 767 bytes”错误,解决办法请见以下连接. htt ...

  9. 使用VS2013 + EF6 + .NET4.5 连接Mysql数据库

    1.安装插件 在使用Visual Studio 2013添加ADO.NET实体数据模型新建连接时,默认是没有Mysql选项的.此时我们需要安装两个东西: 1.mysql-for-visualstudi ...

随机推荐

  1. Android性能优化的浅谈

    一.概要: 本文主要以Android的渲染机制.UI优化.多线程的处理.缓存处理.电量优化以及代码规范等几方面来简述Android的性能优化 二.渲染机制的优化: 大多数用户感知到的卡顿等性能问题的最 ...

  2. iOS 用webView加载后台返回的HTML数据

    返回数据: <p><b>\U516c\U53f8\U7b80\U4ecb</b></p><p>    \U5584\U76c8\U7ba1\ ...

  3. 【代码笔记】iOS-传身份证号码可返回生日字符串

    代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. NS ...

  4. HTML5设计网页熔岩灯导航(navigation bar)插件 已经加上完整源代码

    导航栏(navigation bar): 1.指位于页眉区域的,在页眉横幅图片上边或下边的一排水平导航按钮,它起着链接博客的各个页面的作用. 2.网页设计中不可缺少的部分,它是指通过一定的技术手段,为 ...

  5. js自执行函数的几种不同写法的比较

    经常需要一个函数自执行,可惜这一种写法是错的: function(){alert(1);}();  原因是前半段“function(){alert(1);}”被当成了函数声明,而不是一个函数表达式,从 ...

  6. Asp.net MVC的Model Binder工作流程以及扩展方法(2) - Binder Attribute

    上篇文章中分析了Custom Binder的弊端: 由于Custom Binder是和具体的类型相关,比如指定类型A由我们的Custom Binder解析,那么导致系统运行中的所有Action的访问参 ...

  7. [转载]DBA的特质第一部分:技术

    本文转自http://www.searchdatabase.com.cn/showcontent_84379.htm 支持原创.尊重原创,分享知识! 在本系列文章中,笔者将谈一谈数据库管理员(DBA) ...

  8. SQL SERVER同步环境新增发布对象时不能生成(sp_MS+表名)同步存储过程

    在配置了同步的用户环境(订阅端:请求订阅) 在发布端: 1.企业管理器SSMS—复制—本地发布—发布属性—项目(选中发布对象) 2.在企业管理里—查看快照代理状态(启动) 在订阅服务器: USE [D ...

  9. 烂泥:学习ubuntu远程桌面(一):配置远程桌面

    本文由秀依林枫提供友情赞助,首发于烂泥行天下 公司服务器目前安装的都是ubuntu 14.04系统,而且由于业务需要,需要使用到ubuntu的远程桌面功能.所以本篇文章都是围绕ubuntu的远程桌面来 ...

  10. 记一次ganglia的故障分析 mem_report不显示

    ganglia集群中mem_report不能正确显示,有的显示有些不显示. 我通过web开发工具F12,获取生成图片的路径,然后加上&debug=3 显示发现: No matching met ...