C#之EF 使用篇之EF的分类模式

Model First

流程:
1.创建控制台程序
2.添加新项-“ADO.NET Entity Data Model”
C#之EF 使用篇之EF的分类模式

3.模型设计视图中,添加新实体
C#之EF 使用篇之EF的分类模式

C#之EF 使用篇之EF的分类模式
4.添加实体属性
添加两个Scalar属性:“Customer”和“OrderDate(为datetime类型,可选中它在属性中修改)”;同样的方式添加第二个实体“OrderDetail”,并添加“Product”和“UnitPrice”属性
C#之EF 使用篇之EF的分类模式

5.添加关联关系
C#之EF 使用篇之EF的分类模式

6.生成数据库
在模型设计视图空白处选择“从模型生成到数据库
C#之EF 使用篇之EF的分类模式

7.选择数据库链接
C#之EF 使用篇之EF的分类模式
C#之EF 使用篇之EF的分类模式
8.生成数据库上下文和实体类(自动生成)
若是没有保存,查看模型有没有做保存动作

9.更新
更新模型设计图后,对应实体类会自动改变,选择从模型生成到数据库(重新生成脚本)即可

Code FIrst(代码优先模式)

优点

  • 开发人员只需要编写对应的数据类,自动生成数据库

与Model First区别

  • 更新方式

    • ModeI First:通过实体模型进行数据库设计
    • Code First:不借助于实体数据模型设计器,而是直接通过编码(数据类)方式设计实体模型
  • 处理过程

    • Code First:通过“数据注释”和“fluent API”进行映射和配置
    • Model First:通过EDM文件
  • 流程
    1.添加两个类Order OrderDetail – POCO1
    两个类在导航属性进行关联
    C#之EF 使用篇之EF的分类模式
    2.定义数据库上下文操作类(OrederContext)2

  • 安装nugut包

    • Nugut在线安装,选择entity framework
      此处有增删改查操作,需继承于"System.Data.Entity.DbContext”,因此需要安装EF(EntityFramwork包)
  • 数据库上下文操作
    C#之EF 使用篇之EF的分类模式
    数据库配置
    在appconfig文件中配置
    C#之EF 使用篇之EF的分类模式
    配置完毕,构造函数多了一个连接名参数
    C#之EF 使用篇之EF的分类模式

代码使用
C#之EF 使用篇之EF的分类模式
数据库会自动多一个数据对应名字的数据库

重要:dbo._MigrationHistory

PS:
并不代表一定就必须通过数据类来定义模型,事实上也可以通过现有数据库生成数据类

EF三种编程方式详细图文教程(C#+EF)之Code First

DataBaseFirsst

1.mysql数据库安装

  • 下载MySql for Visual Studio

  • 安装时选择custom,并选择对应vs的路径C#之EF 使用篇之EF的分类模式

  • 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.数据库查询
    C#之EF 使用篇之EF的分类模式

9.表结构更新
在模型设计视图空白处右键,选择“从数据库更新模型”接着按照向导操作即可
C#之EF 使用篇之EF的分类模式

安装MySql for Visual Studio的坑
EF三种编程方式详细图文教程(C#+EF)之Database First


  1. POCO: Plain Old C# Object ,内在含义:那些没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的C#对象 ↩︎

  2. 对数据进行增删改查操作 ↩︎