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

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

    在创建实体模型的时候  数据源选项很可能没有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    //可能会出现下面的错误提示

解决方法是: 到https://www.nuget.org/packages/MySql.Data.Entity.EF6/ 查看一下命令的正确方式

有时可能版本不正确,需要添加版本信息

//如果执行时提示:

PM> Install-Package MySql.Data.Entity.EF6
Install-Package : 无法找到程序包“MySql.Data.Entity.EF6”。

在web.config 的providers 加一个节点            //此处需要手动添加配置项

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

最新文章

  1. eclipse安装svn
  2. PHP测试用例文档
  3. Unsupported configuration attributes: [FILE_UPLOAD]
  4. Web前端性能优化教程07:精简JS 移除重复脚本
  5. oc面向对象特性: 多态
  6. Java提高篇——equals()方法和“==”运算符
  7. hadoop2.0初识1.1
  8. CODEVS 2102 石子归并 2
  9. android软键盘enter键
  10. Android 开发——如何显示 GIF 动画
  11. 【.net 深呼吸】项目中是否有必要删去多余的引用
  12. 笔记1 linux 多线程 互斥锁
  13. jmeter链接数据库
  14. Android语音识别
  15. Scala进阶之路-尾递归优化
  16. 吴裕雄 24-MySQL 索引
  17. css中box-sizing简单说明(标准盒式模型和怪异盒式模型)
  18. 瘋子C语言笔记 (string)
  19. js之global 对象 方法
  20. Oracle EBS 跳跳转标准销售订单程序转标准销售订单程序

热门文章

  1. [翻译]使用VH和VW实现真正的流体排版
  2. 如何清除浮动塌陷? float:left 塌陷
  3. luogu P3605 [USACO17JAN]Promotion Counting晋升者计数
  4. Shiro源码分析
  5. Match function in R
  6. synchronized 关键字如何使用
  7. Python打印矩形、直角三角形、等腰三角形、菱形
  8. PowerDesigner使用方法入门学习
  9. jvm 内存溢出问题排查方法
  10. Git stash 常用命令