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. 未能为数据库 '*'中得对象'*'分配空间,因文件组'PRIMARY'已满

    服务器使用mssqlserver2005,最近经常出现无法新增信息错误,查看日志,发现严重错误提示,内容大致为: 无法为数据库 'weixin_main' 中的对象 'dbo.wx_logs'.'PK ...

  2. 【转】Unity3D的LightProbe动态光探头用法介绍

    原创至上,移步请戳:Unity3D的LightProbe动态光探头用法介绍 之前曾经介绍过Unity3D的LightMapping烘焙的用法.单独使用的LightMapping效果很好,但由于只是把光 ...

  3. 本地存储localStorage以及它的封装接口store.js的使用

    本地存储localStorage以及它的封装接口store.js的使用 sublime-text chrome javascript readyGo 2016年11月20日发布   0 推荐 9 收藏 ...

  4. BootStrapTable 文档

    文档包含了表格属性.列属性.事件.方法等等. 表格参数 表格的参数定义在 jQuery.fn.bootstrapTable.defaults. 名称   标签   类型   默认   描述   - d ...

  5. jetty 7.0 笔记

    codehaus  download:http://dist.codehaus.org/jetty/ 找到7.0  tar.gz 解压 拉取 Lib下jar 和  Lib--jsp下jar 代码同启动 ...

  6. java 多线程 24 : 线程组

    线程组 可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线程,这样的组织结构有点类似于树的形式,如图所示: 线程组的作用是:可以批量管理线程或线程组对象,有效地对线 ...

  7. 基于jQuery经典扫雷游戏源码

    分享一款基于jQuery经典扫雷游戏源码.这是一款网页版扫雷小游戏特效代码下载.效果图如下: 在线预览   源码下载 实现的代码. html代码: <center> <h1>j ...

  8. zip伪加密

    简单的话来阐述 zip伪协议的意思是说本来不需要密码的zip文件然后通过修改标志位,然后就可以达到有密码的效果对吗?但是他实际是没有密码. 一个 ZIP 文件由三个部分组成: 压缩源文件数据区+压缩源 ...

  9. 朴素贝叶斯分类器的应用 Naive Bayes classifier

    一.病人分类的例子 让我从一个例子开始讲起,你会看到贝叶斯分类器很好懂,一点都不难. 某个医院早上收了六个门诊病人,如下表. 症状 职业 疾病 打喷嚏 护士 感冒  打喷嚏 农夫 过敏  头痛 建筑工 ...

  10. git学习(五):git diff魔法

    不同参数下git diff输出并不相同,理解了工作区,暂存区和版本库的关系之后就很容易理解diff了. 工作区.暂存区和版本库的目录树浏览 清除工作区中未被git管理的文件 git clean -fd ...