下边的图就能够很清晰地展现EF的CRUD操做的基本工做流程:html
这里作一个EF CRUD操做的简单总结:
1.定义模型:这是EF工做的前提,定义模型包括定义领域类(Domain Classes),派生自DbContext的上下文类和Configuration(若是有的话)。EF将经过模型来执行CRUD操做。
2.添加数据:将领域对象添加到上下文并调用SaveChanges()方法。EF API将构建适当的INSERT命令并将其执行到数据库。
3.读取数据:执行LINQ-to-Entities查询。EF API会将此查询转换为底层关系数据库的SQL查询并执行,而后将结果转换为实体对象并显示在UI上。
4.编辑或删除数据:从上下文更新或删除实体对象并调用该SaveChanges()方法。EF API将构建适当的UPDATE或DELETE命令并执行。数据库
这里将展现EF工做的基本过程
EF API(EF6和EF Core)包括几个功能:①将领域类映射到数据库,②将LINQ查询转换为SQL并执行,③跟踪实体在其生命周期内发生的更改,并将这些更改保存到数据库。架构
EF API的首要任务是构建实体数据模型(EDM)。EDM是整个元数据的内存表示,包含:概念模型,存储模型以及它们之间的映射。post
概念模型: EF经过领域类,上下文类,默认约定和配置构建概念模型。htm
存储模型: EF为底层数据库架构构建存储模型。在代码优先方法中,根据概念模型进行推断来构建。在数据库优先模式中,根据目标数据库进行推断来构建。对象
映射: EF包括的映射信息,表示概念模型是如何映射到数据库架构(存储模型)。blog
EF API使用EDM将LINQ-to-Entities查询转换为SQL查询,并将结果转换回实体对象。教程
EF API在调用SaveChanges()方法时根据实体的状态推断INSERT,UPDATE和DELETE命令。ChangeTrack会在执行操做时跟踪每一个实体的状态。生命周期
EF系列目录连接:Entity Franmework系列教程汇总内存