Model First
流程:
1.创建控制台程序
2.添加新项-“ADO.NET Entity Data Model”
3.模型设计视图中,添加新实体
4.添加实体属性
添加两个Scalar属性:“Customer”和“OrderDate(为datetime类型,可选中它在属性中修改)”;同样的方式添加第二个实体“OrderDetail”,并添加“Product”和“UnitPrice”属性
5.添加关联关系
6.生成数据库
在模型设计视图空白处选择“从模型生成到数据库
7.选择数据库链接
8.生成数据库上下文和实体类(自动生成)
若是没有保存,查看模型有没有做保存动作
9.更新
更新模型设计图后,对应实体类会自动改变,选择从模型生成到数据库(重新生成脚本)即可
Code FIrst(代码优先模式)
优点
- 开发人员只需要编写对应的数据类,自动生成数据库
与Model First区别
-
更新方式
- ModeI First:通过实体模型进行数据库设计
- Code First:不借助于实体数据模型设计器,而是直接通过编码(数据类)方式设计实体模型
-
处理过程
- Code First:通过“数据注释”和“fluent API”进行映射和配置
- Model First:通过EDM文件
-
流程
1.添加两个类Order OrderDetail – POCO1
两个类在导航属性进行关联
2.定义数据库上下文操作类(OrederContext)2 -
安装nugut包
- Nugut在线安装,选择entity framework
此处有增删改查操作,需继承于"System.Data.Entity.DbContext”,因此需要安装EF(EntityFramwork包)
- Nugut在线安装,选择entity framework
-
数据库上下文操作
数据库配置
在appconfig文件中配置
配置完毕,构造函数多了一个连接名参数
代码使用
数据库会自动多一个数据对应名字的数据库
重要:dbo._MigrationHistory
PS:
并不代表一定就必须通过数据类来定义模型,事实上也可以通过现有数据库生成数据类
EF三种编程方式详细图文教程(C#+EF)之Code First
DataBaseFirsst
1.mysql数据库安装
-
下载MySql for Visual Studio
-
安装时选择custom,并选择对应vs的路径
-
vs新增数据库
服务器资源管理器-数据连接-新增数据库
2.新增控制台应用程序,ADO.NET Entity Data Model
3.右键添加新建项,选择“ADO.NET Entity Data Model”,名称输入EFDemoDB
4.选择从数据库生成
- 可能没有mysql的数据库,需要用Nuget方式安装MySql.Data.Entity-6.9.12,MySql.Data-6.9.12
- 两个dll的版本必须一模一样,否则会出错误
5.选择数据库连接/新建数据库连接并选择
6.选择表
7.自动生成数据库类和实体类和XXXXDB数据库上下文操作类
8.数据库查询
9.表结构更新
在模型设计视图空白处右键,选择“从数据库更新模型”接着按照向导操作即可
安装MySql for Visual Studio的坑
EF三种编程方式详细图文教程(C#+EF)之Database First