使用EntityFramework6连接MySql数据库(db first方式)

时间:2023-03-08 15:41:46
使用EntityFramework6连接MySql数据库(db first方式)

准备工具:

VS2013、MySQL For VisualStudio 1.1.4Connector/Net 6.8.3(百度网盘里)

程序包管理器执行命令:

Install-Package EntityFramework
Install-Package MySql.Data.Entity.EF6
Install-Package MySql.Data.Entity -Version 6.9.3

这块已经可以直接Install-Package MySql.Data.Entity -Version 6.9.3用这个了

此时如果直接添加ado.net实体模型的话是有以下错误的:

使用EntityFramework6连接MySql数据库(db first方式)
注意了:App.config中生成的Provider是有问题的,这时候要手动添加红色线画出的一条:

注意了:下面的这块截图也可以不用了,因为你使用Install-Package MySql.Data.Entity -Version 6.9.3可以自己生成了

使用EntityFramework6连接MySql数据库(db first方式)

<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />

这样最好先编译一下。

然后开始添加ADO.NET实体模型了

使用EntityFramework6连接MySql数据库(db first方式)

然后就是和以前的一样了。

被这个问题折磨了很久,记录下来备忘。希望能帮得到跟我一样的你!

2017-06-14 vs2017 mysql5.7.18 ef6.1.3 mysql.data.entity6.9.9

最新版vs2017连接mysql5.7时出现了这样的一个问题:

EF连接MYSQL 表'TABLEDETAILS'中的列'ISPRIMARYKEY'的值为DBNULL

解决方法如下:

1、重启mysqld(一般为mysql57)服务

2、use mydb; (mydb是你要dbfirst的数据库)set global optimizer_switch='derived_merge=OFF';

3、重新新增edmx模型并更新数据