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. python argparse详解

    1.argparse模块作用 用于解析命令行参数 2.位置参数和可选参数 运行以下代码: import argparse parser = argparse.ArgumentParser() args ...

  2. Android 支付宝接口调用

    在近期,公司需要开发一个关于在线支付的模块,所以需要用到第三方支付平台 转载请注明出处:http://blog.csdn.net/ht_android/article/details/45307165 ...

  3. [MyBean说明书]-如何进行最简单的DEMO

    MyBean是轻量级的.绿色的框架,不需要安装任何的组件和携带任何的其他文件,前 期步骤已经相当精简了,仔细阅读完下面简单的五个步骤,就可以编写基于MyBean的插件: 1.加入Delphi的搜索路径 ...

  4. YGC和FGC发生时间

    1.YGC和FGC是什么 YGC :对新生代堆进行gc.频率比较高,因为大部分对象的存活寿命较短,在新生代里被回收.性能耗费较小. FGC :全堆范围的gc.默认堆空间使用到达80%(可调整)的时候会 ...

  5. PowerDesigner小技巧

    1. 附加:工具栏不见了 调色板(Palette)快捷工具栏不见了PowerDesigner 快捷工具栏 palette 不见了,怎么重新打开,找回来呢 上网搜索了一下”powerdesigner 图 ...

  6. 显示eclipse中Problem窗口的方法

    https://blog.csdn.net/ningfuxuan/article/details/76395029 ****************************************** ...

  7. C#学习笔记(15)——c#接口

    说明(2017-7-17 21:57:26): 原文:http://www.cnblogs.com/jiajiayuan/archive/2011/09/16/2178462.html 本文意在巩固基 ...

  8. C#学习笔记(12)——三种方法操作XML

    说明(2017-7-11 16:56:13): 原文地址: C#中常用的几种读取XML文件的方法 XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web. ...

  9. BI-LSTM-CRF在序列标注中的应用

    1. 前言 在NLP中有几个经典的序列标注问题,词性标注(POS),chunking和命名实体识别(NER).序列标注器的输出可用于另外的应用程序.例如,可以利用在用户搜索查询上训练的命名实体识别器来 ...

  10. 基于CSS3鼠标滑过放大突出效果

    还记得之前分享过一款CSS3图片悬停放大特效,效果非常不错.今天我们要再来分享一款类似的CSS鼠标滑过放大突出效果,只不过之前那个是图片,这次是色块,其实掌握了其CSS原理,任何网页元素都可以实现这种 ...