一、Entity Framework的基本工作流程
以上的工作流程:
1、定义模型包括领域类(domain class)、上下文类(Context Class 来自DbContext)、配置(Configurations),EF将依据你的模型形成相关CURD操作。
2、插入数据:添加一个域对象(domain object)到上下文中,并且调用 SaveChanges()
方法。EF API将构建和执行适当的 insert
命令将其执行到数据库中。
3、读取数据:执行 LINQ-toEntities 查询,EF API将转换这个查询为基础关系数据库的SQL查询并且执行此SQL。查询结果将被转化为域实体对象,并且将此结果显示在UI上。
4、更新/删除数据:调用 SaveChanges()
方法从上下文中更新或删除实体对象。EF API将构建适当的 update
or delete
命令并将其执行到数据库中。
二、Entity Framework是如何工作的?
EF API包括一下功能:
1.将域实体类(domain entity calsses)映射到数据库模式
2.翻译LINQ查询为SQL;
3.检测实体在生命周期内的的变化
4.保存更改到数据库
Entity Data Model
EF API的首要任务就是建立一个实体数据模型(Entity Data Model
EDM
)。EDM
就是整个元数据内存的表示形式: 概念模型,存储模型和他们之间的映射。
Conceptual Model:
EF将根据你的域类,上下文类,域类中遵循的默认约定和配置来构建概念模型。
Storage Model:
EF将为基础数据库架构构建存储模型。在 Code-first
方法中,存储模型将会根据概念模型推断出来。在 DataBase-first
方法中,概念模型将会根据目标数据库推断出来。
Mappings:
EF包含有关概念模型如何映射到数据库模式(存储模型)的映射信息。
EF用此 EDM
执行CURD操作。它用 EDM
从 LINQ queries
构建 SQL queries
,构建 INSERT
、 UPDATE
、DELETE
命令,并将数据库结果转换为实体对象。
Querying
EF API使用EDM翻译 LINQ-to-Entities 查询到 SQL 查询并且将转换结果返回到实体对象中。
Saving
当调用 SaveChanges()
方法时,EF API将根据实体的状态推断 INSERT
,UPDATE
,DELETE
命令。当每个实体的状态改变时,ChangeTrake将跟踪每个实体的状态。