做了一次更新,以后面更新的内容为主


我们在开发有关数据库相关的程序的时候,通常会遇到选择数据库的连接方式问题,有些人选ADO.NET,有些人选EF,更好的就是两者同时选择。

我在写现在这个项目的时候,因为和PHP配合,数据库建立在mySql上的,所以我选择使用EF进行数据库的连接与操作,当然,就像上面说的,也要习惯在EF中使用ADO.NET。

建立数据连接对象时出现的错:

1.新建连接的时候找不到MySql的选择对象(只有关于SQL SERVER的,一般情况)

2.新建连接成功了,数据库库也找到了,却出现如下图所示的错误

    (您的项目引用了最新版实体框架;但是,找不到进行数据库连接所需的此版本兼容的实体框架数据库提供程序......)

    

EF6中使用mysql ef支持mysql_数据库



解决方案:

1.

    楼主直接在选择使用vs中工具->扩展更新->联机,搜索mysql for,直接回车,选择了如下选项并下载安装

    

EF6中使用mysql ef支持mysql_EF6中使用mysql_02

如此,重新生成解决方案后,第一个问题就解决了。

2.

    根据百度出来的步骤走一下:

    

    然而楼主还是遇见了这个问题,但自认为上面的操作还是有作用的。。。。。

    于是又借鉴了一下:

    

    这里的。目前还未完全解决,已经两点半了明天继续


好,书接上回!!!

按照上面说的方法,童鞋们能够安装好市最好的,但是如果还不能解决第二个问题的话,(我也是),咱们就换一个方法。

我在其他博客的一个评论里看到一句话,“又不是微软亲生的,凭什么能够使用最新的版本,于是乎,想到了解决方法。

上面截图的错误的大概意思市我们的实体框架是6.X的,因为和我们安装的mysql 的数据库提供程序版本不兼容,所以才会报错。那么,我就直接把项目中的EF6改成了EF5,完美解决!



至此,c#语音中使用EF连接mysql数据库问题已全部解决!

请各位多加指正


------------------------------------------------更新分割线----------------------------------------------------------

1、下载MySQL for Visual Studio,我这里使用的版本是    1.2.7

EF6中使用mysql ef支持mysql_EF_03

下载地址是https://dev.mysql.com/downloads/windows/visualstudio/

下载好了之后安装


2、下载MySql connector/net(暂时没搞清楚这个到底有没有用),我使用的版本是6.10.6

EF6中使用mysql ef支持mysql_mysql_04

下载地址是:https://dev.mysql.com/downloads/connector/net/

下载好了之后安装


3、打开VS,新建项目,这里我使用控制台程序

EF6中使用mysql ef支持mysql_EF_05

项目新建好了之后,使用NUGET添加一些包进去

EF6中使用mysql ef支持mysql_EF6中使用mysql_06

    要添加的包:

                Entity Framework5.0.0(一定要是5.0.0,最新的6.X是不支持mysql的)

                mysql.data 6.7.9.0(不要是别的版本,切记)

                mysql.data.entity 6.7.9.0(一定要与mysql.data的版本一致)

EF6中使用mysql ef支持mysql_EF6中使用mysql_07

EF6中使用mysql ef支持mysql_mysql_08


3、使用ef连接MySQL

EF6中使用mysql ef支持mysql_mysql_09

EF6中使用mysql ef支持mysql_EF_10

我这里使用的是dbfirst

EF6中使用mysql ef支持mysql_EF6中使用mysql_11

EF6中使用mysql ef支持mysql_数据库_12

EF6中使用mysql ef支持mysql_数据库_13

EF6中使用mysql ef支持mysql_EF_14

然后可以输入服务器地址、用户名、密码,输入完之后可以点击 测试连接 按钮,会告诉你连接是否正确,之后就可以选择要映射到程序当中的数据库了

EF6中使用mysql ef支持mysql_数据库_15

连个下一步之后进入选择表,选择要映射的表,一般为所有表

EF6中使用mysql ef支持mysql_数据库_16

点击完成,等待生成ef框架成功,可能会花费一点时间,不要慌张。。。


一段时间过后

EF6中使用mysql ef支持mysql_c#_17


4、最后,构建代码

EF6中使用mysql ef支持mysql_EF6中使用mysql_18