VS连接sql server因为都是微软的,所以VS自带功能,使用很方便,但是连Mysql就不同了,mysql开发的驱动有很多的坑。本人亲自尝试,终于找到对策
步骤
1.要安装mysql-connector-net,这个是Windows连接Mysql的驱动。
2.要安装mysql-for-visualstudio,这个是VS生成实体对象的插件。
3.在VS项目中添加MySql.Data,MySql.Data.Entity这两个DLL,建议用NuGet导入。
说明一下,这几个步骤中mysql-connector-net,和MySql.Data.Entity的版本号必须对应,不然是无法生成的,这是个大坑。Mysql开发的驱动很多新的版本没有对应的MySql.Data.Entity。
以下是我使用的版本mysql-connector-net-6.8.8.msi,下载地址https://pan.baidu.com/s/1RbK6E2MaY9VQe9RxFZBtpA,提取码b86n。因此MySql.Data.Entity也必须是6.8.8,这个NuGet上有,找对应版本。
4.新增.edmx项目,在项目上右击添加ADO.NET实体数据模型,配置数据库连接,在新建连接的时候数据源要选择MySQL Database,如果没有这一项,那就是没有装好mysql-for-visualstudio,选完后就可以生成实体模型了。
5.打开DbContext生成器,也就是.TT文件,看到一页乱七八糟的代码后Ctrl+S,保存后就会自动生成实体对象。
6.如果出现无法生成模型:“表“TableDetails”中列“IsPrimaryKey”的值为DBNull这个报错,请执行下面的语句后重启并重新生成
use <database_name>;
set global optimizer_switch='derived_merge=off';
set optimizer_switch='derived_merge=off';
select @@optimizer_switch;
select @@GLOBAL.optimizer_switch;
新增.edmx项目这一步也有很多坑,请听下回分解。