由于一直使用的数据库是mysql,之前所用的orm都是轻量级的例如 dapper 这些的,然后想用ef配置一下mysql,总共时间花了差不多2天,才将坑填完,写个博客将流程记录一下 给后来者少掉点坑。
废话不多说直接开始。
首先得安装Mysql数据库与两个连接器
Mysql会根据不同的系统环境安装不同版本的连接器,可以将连接器卸载后再安装适合的版本,
1.Mysql数据库推荐mysql-5.7.25-winx64.zip版本,下载链接:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
2.mysql-connector-net-6.9.12 ,注意版本号 必须与项目代码中的MySql.Data.Entity 的版本保持一致,否则在ADO.Net实体选择的时候闪退 下载链接:https://dev.mysql.com/downloads/connector/net/
注意:因Oracle官方好像取消了mysql-connector-net和mysql.data.entity的6.10.8版本,此处使用6.9.12.
3.mysql-for-visualstudio-1.2.8 vs的mysql工具
准备工作都就绪了,接下来我创建一个WInform项目来演示如何连接MySQL数据库。
1.测试能否正常连接
选择连接到数据库
出现“测试连接成功”后,点击确定按钮。
2.打开NuGet包管理工具后,点击浏览,然后搜索EntityFramework。先安装EntityFramework,再安装MySQL.Data.Entity.
通过NuGet来安装EF可以帮我们省去很多麻烦的配置环节。
选择EntityFramework.zh-Hans,同样也是6.0.0版本
在版本选择栏选择6.0.0版本(一定要选择6.0.0版本,别问我是怎么知道的,我先去哭一会儿......)
MySQL.Data.Entity的版本一定要与mysql-connector-net版本保持一致(上文提过),不然在VS通过EF6调用Mysql时会出现各种错误!
OK,都添加完毕后,会在项目引用中看到四个dll文件,表示添加成功
按照习惯,我先在项目中建立了一个Modules文件夹,用于保存所有生成的数据模型文件。之后右击,新建项。
选择ADO.Net实体数据模型,并命名为DBModel
选择 来自数据库的CodeFirst ,点击下一步
选择新建连接选项,选择并测试数据源
选择“否”,不然后面实际操作会比较麻烦
点击完成,连接成功!!!
回到解决方案资源管理器,这时我们的项目下就应当多了三个文件,一个是DBModel数据库上下文(到时都是通过它来操作数据库),另两个是class数据模型和student数据模型。(每张表都需要设置主键,不然不能生成可调用的类文件)
在名为databasetest的数据库中创建两张表class,student。
class表中包含字段:Class_id,Class_name;其中Class_id为主键
student表中包含字段:Student_id,Class_id,Name,Age;其中Student_id为主键
菜单页
添加数据页
查询/删除页
按条件查询/修改页
项目源码及数据库文件分享给大家,帮助大家在使用EF6的道路上少走弯路!
链接:https://download.csdn.net/download/weixin_39525333/11125162