C#/.NET 在EF中连接mySql

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


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

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

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

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

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

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

    



解决方案:

1.

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

    

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

2.

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

    https://www.cnblogs.com/Imaigne/p/4153397.html

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

    于是又借鉴了一下:

    https://blog.csdn.net/xiaomayi201314/article/details/50502067

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


好,书接上回!!!

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

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

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



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

请各位多加指正


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

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


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

下载好了之后安装


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


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

下载好了之后安装


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


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


    要添加的包:

                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的版本一致)




3、使用ef连接MySQL



我这里使用的是dbfirst





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


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


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


一段时间过后



4、最后,构建代码



已经实测,成功!!!!!!


终于成功了,之前弄了好多天,总是告诉我配置文件错,百度了很多,然而并没有解决问题,大概都是些proders的错误。到今天早上的时候,突然想到是不是mysql.data的版本问题,于是就试了,历经艰险,终于成功了



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

上面引入nuget包的时候只用引入mysql.data.entity 6.7.9.0,就会自动添加其他两个包


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

EF虽好,但是我又遇到坑了,dotconnect for mysql这个数据驱动器要收费,只是前期免费。。。明天就全改成ado.net

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值