EF连接MySql

无论程序中使用 DataBase First 还是使用 Code First 都需要使用下面的步骤才可以。

1. 安装 mysql

可以选择全部安装,但是作为开发人员,总希望只安装自己需要的部分,所以我都会选择自定义安装,一般只安装 mysql 服务和MySQL Connector Net。但是这里请先安装 mysql 服务,MySQL Connector Net先不要安装,原因下面再说

2. 打开 VS ,使用 Nuget 安装 Entity Framework,现在最新版是 6.0.0.0

3. 使用 Nuget 安装 MySql.Data.Entity ,最新版本是 6.9.9.0,请记住这个版本

4.安装 Mysql for visual studio,不安装这个,新建实体数据模型时看不到 MySql DataBase 数据源,在 Code Frist 模式下也不可用。

5..这个时候再来安装 MySQL Connector Net ,这个版本应该与 MySql.Data.Entity 一致,我就是因为刚开始是 6.9.4,导致使用  DataBase First 方式添加实体数据模型时闪退,删除再安装之后就没有问题了。你不要觉得 使用 Code First 就不需要安装了,仍然需要安装

6. 但是现在虽然不闪退了,但仍然可能报下面一个错误

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


按照下面的方式操作即可:


重启 mysql 服务。

连接到 mysql 服务器,运行下面的代码

use 数据库名称;
set global optimizer_switch='derived_merge=OFF'

备注:有个学生反应使用EF连接mysql数据库,本机开发没问题,但发布到服务器上就报各种错误,原因就在于第4点


最后还要注意一个问题,如果使用EF操纵数据库,数据库连接字符串一定使用下面格式:

Data Source=localhost;port=3306;Initial Catalog=book1;user id=root;password=198412;" providerName="MySql.Data.MySqlClient

关键在于最后必须加上

providerName="MySql.Data.MySqlClient

否则会报错。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

巴山却话

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值