• Entity Framework介绍


    1.Entity Framework介绍

    下图显示EF整体架构。现在我们来看看架构的各个组件:

    EDM(Entity Data Model): EDM由三个主要部分组成:概念模型,映射和存储模型。
    映射(Mapping):映射由概念模型映射到存储模型的信息组成。
    概念模型(Conceptual Model):概念模型包含模型类及其关系。这将独立于您的数据库表设计。

    存储模型(Storage Model):存储模型是数据库设计模型,包括表,视图,存储过程及其关系和关键字。
    LINQ to Entities:LINQ to Entities是用于针对对象模型编写查询的查询语言。它返回在概念模型中定义的实体。你可以在这里使用你的LINQ技巧。
    实体SQL(Entity SQL):实体SQL是另一种查询语言,就像LINQ to Entities一样。但是,它比L2E有点困难,开发人员将不得不单独学习它。
    对象服务(Object Service):对象服务是从数据库访问数据并将其返回的主要入口点。对象服务负责实现,这是将从实体客户机数据提供者(下一层)返回的数据转换为实体对象结构的过程。
    实体客户端数据提供者(Entity Client Data Provider):此层的主要职责是将L2E或实体SQL查询转换为基础数据库所理解的SQL查询。它与ADO.Net数据提供商进行通信,ADO.Net数据提供者又从数据库发送或检索数据。
    ADO.Net数据提供者(ADO.Net Data Provider):此层使用标准ADO.Net与数据库通信。

    2.DbContext是负责与数据作为对象进行交互的主要类

    EntitySet: DbContext包含映射到DB表的所有实体的实体集(DbSet <TEntity>)。
    查询: DbContext将LINQ到实体查询转换为SQL查询并将其发送到数据库。
    更改跟踪:它跟踪实体在数据库中进行查询后发生的更改。
    持久化数据:它还根据实体的状态执行对数据库的“插入”,“更新”和“删除”操作。
    缓存:默认情况下,DbContext执行一级缓存。它存储在上下文类的生命​​周期中已被检索的实体。
    管理关系: DbContext还使用DB-First或Model-First方法中的CSDL,MSL和SSDL管理关系,或者在Code-First方法中使用流畅的API。
    对象实现: DbContext将原始表数据转换为实体对象。

    连接方案:这是从数据库检索实体时,持久性在相同的上下文中使用。上下文对象不会在实体检索和实体的持久性之间破坏。

    断开连接的场景:断开连接的场景是从数据库检索实体,并且使用上下文中的不同对象提交已更改的实体。以下示例说明断开连接的场景:

    3.实体生命周期

    在开展CRUD操作(创建,读取,更新,删除)之前,了解实体生命周期以及由EntityFramework进行管理非常重要。
    在实体的生命周期中,每个实体都具有基于通过上下文(DbContext)对其执行的操作的实体状态。实体状态是包含以下值的System.Data.Entity.EntityState类型的枚举:
    Added,Deleted,Modified,Unchanged,Detached
    上下文不仅保存对从数据库检索的所有对象的引用,而且它保存实体状态并维护对实体的属性所做的修改。此功能称为更改跟踪。
    实体状态从“未更改”到“修改”状态的更改是上下文自动处理的唯一状态。必须使用DbContext和DbSet的正确方法明确地进行所有其他更改。
    下图说明了对实体执行的操作如何更改其状态,从而影响数据库操作。

  • 相关阅读:
    docker介绍与安装
    HTML5之Notification简单使用
    移动端实现复制内容至剪贴板
    flex基本概念
    nodejs建立websocket通信
    使用FileReader实现前端预览所选图片
    去除字符串中的空格
    用swing做一个简单的正则验证工具
    使用命令行生成jar包
    C#语言 语句
  • 原文地址:https://www.cnblogs.com/lgxlsm/p/7475081.html
Copyright © 2020-2023  润新知