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。结果系统提示如下错误:
 
可以看到这个错误是由安装MySql.Data引起的,因为安装Mysql.data.entity的时候它会帮你安装它的依赖项,它的依赖项如下图红色方框所示:
 
由于我已经安装了MySQL.data,所以再次安装会冲突。好了,既然问题很明白了,那么我们卸了MySQL.data,再重新安装MySQL.data.entity就可以了呗。想法很合理,但是你卸载时,你就知错。错误如2、所示;
2、无法卸载Mysql.data。报错如下图所示:
 
傻眼了,还不能卸载了。现在是装不上,又卸不了。一番折腾后,得到解决方法如下:这里虽然提示错误无法卸载,但是我们是程序员呀,没啥是直接精准强删决解不了的卸载。在此之前我们首先要知道mysql.data、mysql.data.entity、EntityFramework的本质是啥,他们都是开发工具包,里面都是一些库类或者一些api啥的,所谓的安装只不过是将他们导入我们的工程环境中,供我们后续开发调用而已。那么我们就可以把它们从我们的项目中移除了。要删除的文件有如下红框画出来的三个:
 
把上面这三个文件干掉再重新打开一次NuGet发现已安装的程序包里面没有Mysql.data了,好了,接下来就可以按照前面所说直接安装MySql.data.entity了。emm~其实还有另外一个办法可以让你在安装了MySQL.data之后也能正确安装MySql.data.entity,还记得它为什么安装不了吗?是因为已经安装了MySQL.data,而MySql.data.entity还想要安装它,那么我们可以让MySql.data.entity不安装MySql.data不就可以了吗。做法是如下:
 
将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不兼容问题的决解思路

决解了闪退问题,你还有可能在创建实体类的时候遇到一个问题,那就是实体框架不兼容问题,具体的报错如下:
这里提示EntityFramework(实体框架)与建立数据库连接所需用到的版本不兼容,其实就是和MySQL.data.entity的版本不兼容。例如,虽然我已经安装了EntityFramework6.2.0但是这里显示6.X的本版不可用。解决方法是,打开NuGet卸载掉EntityFramework,卸载的时候要把下图的复选框勾上,不然卸载不了。
 
然后再创建实体,这样由于没有安装EntityFramework,所以再到这一步的时候,系统会自动帮你找到相适应的版本,帮你装上,你会看到如下提示:

可以看到系统将为你安装5.x的版本,直接下一步就行。这样实体类的创建就没有啥问题了,功德圆满,双手合十!
 
        到此,你应该能成功创建实体类了。第一次写博客,也着实是因为被这个问题折腾不轻,希望能帮助遇到同样问题的人,就总结了一下。大家一起学习学习嘛。可能有的地方理解不正确,毕竟是我个人摸索出来的,实际上可能并非如此理解的。大家选择性吸收,喜欢就给个赞。转载不用通知我,但请注明出处!

vs2015配置mysql数据库时,mysql.data、mysql.data.entity、EntityFramework的安装错误问题的更多相关文章

  1. java链接MySQL数据库时使用com.mysql.jdbc.Connection的包会出红线问题 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver问题

    package com.swift; //这里导入的包是java.sql.Connection而不是com.mysql.jdbc.Connection import java.sql.Connecti ...

  2. 配置mysql数据库时出再错误:LookupError: No installed app with label 'admin'.

    版本: windows10+py37+django2.2 错误: 项目启动时出现,No installed app with label 'admin' 解决办法: 安装最新的 pip install ...

  3. Navicat for Mysql连接mysql数据库时出现 2003-Can't connect to MySql server on 'localhost'(10061)

    一.环境:linux服务器下 二.问题:在windows7下使用Navicat for Mysql连接mysql数据库时出现 2003-Can't connect to MySql server on ...

  4. 关于php读mysql数据库时出现乱码的解决方法

    关于php读mysql数据库时出现乱码的解决方法 php读mysql时,有以下几个地方涉及到了字符集. 1.建立数据库表时指定数据库表的字符集.例如 create table tablename ( ...

  5. Eclipse中利用JSP把mysql-connector-java-8.0.13.jar放到WebContent\WEB-INF\lib中连接MySQL数据库时Connection conn = DriverManager.getConnection(url,username,password)报错的解决办法

    开发环境: 1.系统:windows 7/8/10均可 2.jdk:1.8.0_144 3.服务器:apache-tomcat-9.0.8 4.IDE:eclipse+jsp 0.网页代码如下: &l ...

  6. Python3:Django连接Mysql数据库时出错,'Did you install mysqlclient or MySQL-python?'

    Python3:Django连接Mysql数据库时出错,'Did you install mysqlclient or MySQL-python?' 一.原因 因为Python版本问题,MySQLdb ...

  7. 使用图形界面管理工具Navicat for MySQL连接Mysql数据库时提示错误:Can't connect to MySQL server (10060)

    版权声明:本文为 testcs_dn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢. https://blog.csdn.net/testcs_dn/article/details/ ...

  8. Linux上通过MySQL命令访问MySQL数据库时常见问题汇总

    Linux上通过mysql命令访问MySQL数据库时常见问题汇总 1)创建登录账号 #创建用户并授权 #允许本地访问 create user 'test'@'localhost' identified ...

  9. java连接mysql数据库时的时区设置问题(time_zone)

    java在连接mysql数据库时,会由于时区设置不正确导致报以下的错误:   The server time zone value '???ú±ê×??±??' is unrecognized or ...

随机推荐

  1. zipkin微服务调用链分析

    1.zipkin的作用 在微服务架构下,一个http请求从发出到响应,中间可能经过了N多服务的调用,或者N多逻辑操作, 如何监控某个服务,或者某个逻辑操作的执行情况,对分析耗时操作,性能瓶颈具有很大价 ...

  2. shell(7):四则运算

    shell 四则运算:expr,let,bc,(()), 1.expr的用法: expr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串. 详细 ...

  3. 【DMQ引擎】-DMQ多进程插件引擎服务平台介绍

    写过服务端项目的程序员可能都有非常痛苦的经历,服务端经常奔溃,无从查起.的确一个服务端要稳定下来要经过长期的积累,不停的测试,调试,发现问题,解决问题.这个周期可能很长,几个月,甚至以年计算.许多企业 ...

  4. iframe自适应当前页面高度

    <style type="text/css"> *{margin:0;padding:0;list-style-type:none;} </style> & ...

  5. 【Python】解决UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 0: ordinal not in range(128)

    指定文件字符集为utf-8 在文件头部加入以下代码: import sys reload(sys) sys.setdefaultencoding('utf-8')

  6. linux清理Java环境

    1.清理Java环境rm -f /usr/bin/javarm -f /etc/alternatives/java rm -f /usr/bin/javacrm -f /etc/alternative ...

  7. PHP 图片处理类 错误处理方法:

    call an undefined function exif_imagetype() 打开扩展php.ini 将 ; 去掉: extension=php_exif.dll 并将extension=p ...

  8. open source Swift, Objective-C and the next 20 years of development

    Q&AApple's Craig Federighi talks open source Swift, Objective-C and the next 20 years of develop ...

  9. python3.6使用mysql

    因为MySQLdb不支持python3,需要导入pymysql 可以选择pip 安装pymysql,或者pycharm安装 [File] >> [settings] >> [P ...

  10. iPad适合写作吗

    我一直感觉对着电脑不利于思考,当需要纯粹的思考时,我习惯让视线离开屏幕,起身走动两圈,再用纸和笔整理思路,想清楚后,开始动手编码. 双手端着iPad时,似乎也能有类似纸与笔的组合效果,大脑能适应那种界 ...