vs2015配置mysql数据库时,mysql.data、mysql.data.entity、EntityFramework的安装错误问题

Wesley13
• 阅读 530

 vs2015连接mysql数据库常见问题

          最近在vs2015用asp.net开发一个网站,要连接mysql数据库,于是百度了一下相关配置的文章,有好几篇文章说了相关步骤,但是我装的时候还是遇到了问题,在这里总结一下配置的过程中可能会出现的问题以及本人摸索出来的一些处理方法。

         在此之前提供一下,我在配置过程中看到的别人对于vs2015连接mysql数据库相关步骤的好文连接:

https://www.cnblogs.com/RushPasser/p/5438334.html        

http://www.ituring.com.cn/article/211529?utm\_source=tuicool&utm\_medium=referral 

http://blog.csdn.net/mynewdays/article/details/75194267 

下面开始正文:

       按照前面相关配置我们基本可以知道整个配置过程中要安装的东西了,分别有:MySQL for Visual Studio、MySQL Connector Net、MySQL.data、MySQL.data.entity、EntityFrameword。前面两个属于MySQL数据库的插件,它们的作用本人是这样理解的:MySQL for Visual Studio可以让vs识别到MySQL; MySQL Connector Net 使vs中的.net平台能够与MySQL数据库建立连接。这两个插件的安装没啥问题,直接默认安装就行。接下来是用NuGet安装Mysql.data、Mysql.data.entity、EntityFramework。这三个东西的安装就要注意了,不然会让你在创建实体类的时候各种报错,甚至不能完全将它们都安装上。正确的安装顺序是:直接安装MySql.data.entity就行,其他的不用再单独安装。为啥呢?因为它要依赖其他两个才行,所以系统会自动帮你把mysql.data和EntityFramework都安装上。作为一个新手,我肯定是很理所当然地按顺序安装了。那么各种坑爹就免不了了。

下面是各种错误以及解决方法:

一、安装程序包相关的错误

如果先安装Mysql.data会出现如下问题:

1、无法再安装Mysql.data.entity和EntityFramework。Mysql.data顺利安装完成,兴高采烈地进行下一步,安装Mysql.data.entity。结果系统提示如下错误:

vs2015配置mysql数据库时,mysql.data、mysql.data.entity、EntityFramework的安装错误问题

可以看到这个错误是由安装MySql.Data引起的,因为安装Mysql.data.entity的时候它会帮你安装它的依赖项,它的依赖项如下图红色方框所示:

vs2015配置mysql数据库时,mysql.data、mysql.data.entity、EntityFramework的安装错误问题

由于我已经安装了MySQL.data,所以再次安装会冲突。好了,既然问题很明白了,那么我们卸了MySQL.data,再重新安装MySQL.data.entity就可以了呗。想法很合理,但是你卸载时,你就知错。错误如2、所示;

2、无法卸载Mysql.data。报错如下图所示:

vs2015配置mysql数据库时,mysql.data、mysql.data.entity、EntityFramework的安装错误问题

傻眼了,还不能卸载了。现在是装不上,又卸不了。一番折腾后,得到解决方法如下:这里虽然提示错误无法卸载,但是我们是程序员呀,没啥是直接精准强删决解不了的卸载。在此之前我们首先要知道mysql.data、mysql.data.entity、EntityFramework的本质是啥,他们都是开发工具包,里面都是一些库类或者一些api啥的,所谓的安装只不过是将他们导入我们的工程环境中,供我们后续开发调用而已。那么我们就可以把它们从我们的项目中移除了。要删除的文件有如下红框画出来的三个:

vs2015配置mysql数据库时,mysql.data、mysql.data.entity、EntityFramework的安装错误问题

把上面这三个文件干掉再重新打开一次NuGet发现已安装的程序包里面没有Mysql.data了,好了,接下来就可以按照前面所说直接安装MySql.data.entity了。emm~其实还有另外一个办法可以让你在安装了MySQL.data之后也能正确安装MySql.data.entity,还记得它为什么安装不了吗?是因为已经安装了MySQL.data,而MySql.data.entity还想要安装它,那么我们可以让MySql.data.entity不安装MySql.data不就可以了吗。做法是如下:

vs2015配置mysql数据库时,mysql.data、mysql.data.entity、EntityFramework的安装错误问题

将MySql.data.entity的依赖项行为选为如图所示。这样他就不会连同他的依赖项一起安装了。嘻嘻嘻,是不是有点恍然大悟的感觉,现在你知道所谓的依赖项是啥意思了吧。而为什么安装MySql.data.entity的时候后会帮你安装其他两项依赖项了吧,就是因为这个安装选项的问题。理解了这一点,你就能更加明白这个安装的过程。

二、MySQL创建实体类闪退以及EF不兼容问题的决解思路

(1)MySQL创建实体类闪退的决解方法

有的时候就算mysql.data.entity和MySQL Connector Net版本保持一致了,在创建实体类的时候还是会出现闪退的问题,关于这个问题也是让人蛋疼呀,我被这个问题折腾的不轻。出现这个问题的原因可能是mysql.data.entity和MySQL Connector Net的版本与mysql数据库版本不匹配,决解方法是换一个更高或者更低一点版本的mysql.data.entity和MySQL Connector Net试试,再不行就多试几个,总有一个本版是不会闪退的。例如,我的mysql是5.6版本的,mysql.data.entity和MySQL Connector Net都是6.8.8,就不会闪退。总之,如果出现了闪退,而mysql.data.entity和MySQL Connector Net的版本已经一致了,那么就可以试试换一个高一点或者低一点的版本试试。

(2)MySQL创建实体类遇到EF不兼容问题的决解思路

决解了闪退问题,你还有可能在创建实体类的时候遇到一个问题,那就是实体框架不兼容问题,具体的报错如下:

vs2015配置mysql数据库时,mysql.data、mysql.data.entity、EntityFramework的安装错误问题

这里提示EntityFramework(实体框架)与建立数据库连接所需用到的版本不兼容,其实就是和MySQL.data.entity的版本不兼容。例如,虽然我已经安装了EntityFramework6.2.0但是这里显示6.X的本版不可用。解决方法是,打开NuGet卸载掉EntityFramework,卸载的时候要把下图的复选框勾上,不然卸载不了。

vs2015配置mysql数据库时,mysql.data、mysql.data.entity、EntityFramework的安装错误问题

然后再创建实体,这样由于没有安装EntityFramework,所以再到这一步的时候,系统会自动帮你找到相适应的版本,帮你装上,你会看到如下提示:

vs2015配置mysql数据库时,mysql.data、mysql.data.entity、EntityFramework的安装错误问题

可以看到系统将为你安装5.x的版本,直接下一步就行。这样实体类的创建就没有啥问题了,功德圆满,双手合十!

        到此,你应该能成功创建实体类了。第一次写博客,也着实是因为被这个问题折腾不轻,希望能帮助遇到同样问题的人,就总结了一下。大家一起学习学习嘛。可能有的地方理解不正确,毕竟是我个人摸索出来的,实际上可能并非如此理解的。大家选择性吸收,喜欢就给个赞。转载不用通知我,但请注明出处!

点赞
收藏
评论区
推荐文章
灯灯灯灯 灯灯灯灯
3年前
牛皮了!遇到“ORA-12154: TNS: 无法解析指定的连接标识符”错误,到底该如何解决?
相信使用过Oracle数据库的人一定碰到过“ORA12154:TNS:无法解析指定的连接标识符”错误,我在此做一个小小的总结。在程序中连接Oracle数据库的方式与其他常用数据库,如:MySql,SqlServer不同,这些数据库可以通过直接指定IP的方式连接,但是Oracle则需要通过Oracle客户端配置网络服务名的方式来连接。否则就会出现“
Karen110 Karen110
3年前
手把手教你使用Django如何连接Mysql
前言这次咱们来简述一下,Django如何连接Mysql。默认情况下,Django连接的是自己带的sqlite数据库。这种数据库好处是方便,不需要远程连接,打包项目挪到其他电脑上安装一下依赖一会就跑起来了。但是缺点就是,可能会出现各种莫名其面的问题,所以,尽可能在开始的时候,就配置上连接Mysql。连接MysqlDjango连接Mysql分三步1.
Easter79 Easter79
3年前
sql执行计划与优化
在我们实际工作中大部分人会遇到sql优化的问题,这篇文章主要介绍SQL优化相关。首先我们怎么发现我们的sql执行效率低呢,最简单的方法就是当用户反馈慢的时候我们就会知道哪里可能会有sql效率影响的问题,这里排除其他影响情况,只考虑数据库sql慢的问题。当然这种方式对于我们来说很被动,我们还可以通过什么方式找到有性能问题sql,我们可以通过MySQL的配置文
Alex65 Alex65
3年前
一文带你认知MySQL异常
摘要:在本文中,总结了开发过程中最为常见的几种MySQL抛出的异常以及如何解决,包括高版本驱动的问题、时区配置问题、SSL连接问题等,是一篇经验总结贴。前言在本文中,总结了开发过程中最为常见的几种MySQL抛出的异常以及如何解决,包括高版本驱动的问题、时区配置问题、SSL连接问题等,是一篇经验总结贴,于我个人而言,这一篇足以解决目前
Wesley13 Wesley13
3年前
JDBC+C3P0+DBCP 基本使用
1.概述这篇文章主要说了JDBC的基本使用,包括Statement,PreparedStatement,JDBC的连接,Mysql创建用户创建数据表,C3P0的连接与配置,DBCP的连接与配置.2.mysql的处理这里的JDBC使用Mysql作为DBMS,请先安装Mysql,未安装的请点击这里下载(https:
Wesley13 Wesley13
3年前
POSTGRESQL MYSQL MONGODB 配置文件总结(感谢我的三个DBA)
最近在整理POSTGRESQL MYSQL MONGODB REDIS 的标准化模板配置参数,当然这里面还包含LINUX的一些基本配置.  相关的整理的工作是我的三个DBA 操作的,针对目前的参数进行了相关的整理和重新设定. 昨天有人问我要,这边进贴出来,如果大家有什么问题,告诉我们, 大家一起进步.1  POSTGRE
Wesley13 Wesley13
3年前
MySQL server has gone away(error 2006)问题总结
配置文件位置/etc/mysql/my.cnfMySQLserverhasgoneaway mysql数据库出现这种问题是一个很不友好的错误提示,需要多方位的考虑,才能定位问题所在。出现这个问题主要要考虑到下面两点:1. wait\_timeoutwait\_timeout默认值是28800秒,8小时,除非你改小了,基本上就
Stella981 Stella981
3年前
JVM启动参数的类别及使用
JVM启动参数还是比较实用的,于是我研究了一下它的用法,前段时间下了et项目,启动jBoss的时候出现了一个问题,查了一下,发现是jBoss配置的JVM启动参数有问题,总结了一下解决方案希望对你的学习有所帮助。JVM启动参数小结前段时间下了et项目,启动jBoss的时候出现了一个问题,查了一下,发现是jBoss配置的JVM启动参数有问题。后来
Wesley13 Wesley13
3年前
VS2015+Opencv3.2配置(一次配好)
对于 VS2015QT5.8的配置我就不介绍了,由于我配置的比较早,具体有的东西忘掉了,大家可以参考下面这几篇文章。留白留白留白留白留白(稍后补)对于OpencvVS的配置是我重点要说的内容。VS2015与Opencv3.2唯一对应!(个人认为,其他版本不太好配置)VS2015与Opencv3.2唯一对应!VS2015与Ope
Wesley13 Wesley13
3年前
thinkphp5.0数据库操作
ThinkPHP数据库处理:1.MySQL的数据库连接首先配置database.php文件使用{dump(config('database));}来查看数据库的配置项使用{$resDb::connect();dump($res);}来查看数据库的连接信息我们可以在{Db::connect()}中来配置数据库的连接,具体