• ADO.NET与ADO.NET Entity Framework


     ObjectContext的首次创建包含了装载和验证元数据的性能损耗。

    任何一个查询的首次执行都包含了构建一个查询缓存的性能损耗,以利于提高后续查询的执行速度。

    编译的LINQ查询比未编译的LINQ查询要快。

    如果不需要跟踪数据的变更与数据的关系,或者对大数据对象进行流操作,那么通过NoTracking合并项执行查询,效果会更佳。

    LINQ to Entities 一种 LINQ 技术,使开发人员可以使用 LINQ 表达式和 LINQ 标准查询运算符,针对实体数据模型 (EDM) 对象上下文创建灵活的强类型化查询。

    ESQL Entity SQL

      一种与SQL 类似的、独立于存储的语言。该语言直接操作概念实体架构,并支持实体数据模型功能,如继承和关系。

    EF 实体框架ADO.NET Entity Framework

      一套支持面向数据的软件应用程序开发的技术,可让开发人员使用映射到数据源中的逻辑架构的概念模型。

    EDM 实体数据模型(Entity Data Model)

      一个数据模型,用于将应用程序数据定义为公共语言运行时类型和存储结构可以映射到的实体和关系集。

    Entity 实体

      ADO.NET Entity Framework 应用程序域中的一个概念,数据类型在该域中定义

    csdl 概念架构定义语言 Conceptual schema definition language

      一种基于XML 的语言,可用于定义概念模型的实体类型、关联、实体容器、实体集和关联集

    ssdl 存储架构定义语言 Store schema definition language

      一种基于XML 的语言,用于定义存储模型的实体类型、关联、实体容器、实体集和关联集,经常对应于数据库架构。

    msl 映射规范语言 Mapping specification language

      一种基于XML 的语言,可用于将概念模型中定义的项映射到存储模型中的项

      ADO.NET Entity Framework 架构

      ADO.NET Entity Framework分Storage Provider ,Mapping Layer ,Object Services,LINQ to Entities 四层。

    Storage Provider 负责直接和数据源通讯,支持的数据库Sql Server

    Mapping Layer 数据库概念层和逻辑层的映射。

      通过EDM模型和mapping provider,应用程序将构建在更高层次的EDM模型抽象层次上。同时,在应用程序中将不再使用本地数据库的查询语言比如(T-sql),取而代之的将是Entity SQL。

    Object Services

    Object Services 的目标是消除数据和应用程序代码风格的不匹配

      ADO.NET允许将查询结果呈现为行和列记录,同时也可以呈现为.NET对象。

      该层还包括了更多被O/R mapping框架支持的高级的服务,比如身份认证,跟踪对象状态变化,并行性检查以及处理更新。

    LINQ to Entities 将Entity Framework与LINQ项目集成,以提供面向对象编程语言适合自己特点的查询功能。

      LINQ to Entities这一层依赖于object services和mapping layer这两层。

     ADO.NET Entity Framework 的数据访问方式与ADO.NET 有类似之处

    ADO.NET ADO.NET Entity Framework

    SqlConnection EntityConnection

    SqlCommand EntityCommand

    SqlDataReader. EntityDataReader

    SqlDataAdapter ObjectContext

      DataSet

    ObjectQuery<T>

    Entity

    csdl,ssdl,msl

    eXtensible Application Markup Language,可扩展应用程序标记语言

      注意:ADO.NET与  ADO.NET Entity Framework是不同的技术,这个对比只是一个帮助理解的比效

    http://download.microsoft.com/download/d/0/8/d0838c32-33cc-41fc-b839-50a2db658397/Readme.htm

    .NET Framework 3.0(原代号“WinFX”),它构建于.NET Framework 2.0之上,同时新增了四个大组件:Windows Presentation Foundation(WPF),Windows Workflow Foundation(WWF)、Windows Communication Foundation(WCF)和Windows CardSpace,而这些恰是NET Framework 3.0最具价值的部分。

    最令人瞩目的是WPF(原来代号为“Avalon”),它是微软全新的图形界面引擎

    Entity Framework(EF)存取Entity的三种方式。 LINQ to Entities 直接通过LINQ存取,可完全将程序与数据库分离,由LINQ在内部自动使用Object Service进行数据库操作

    Object Service 可以透过Entity SQL(eSQL)来存取Entity,并且直接以对象的方式来存取结果集(因为结果集本身就是对象的集合)。

    EntityClient 通过过类似ADO.NET 的方法,以及 Entity SQL 存取 Entity。

    EF,有一个容器管理着里面所有附着在其上的对象。它们通过一种叫Object Tracking的机制来跟踪对象的变化,以便于在用户需要的时候把这些变化持久化到数据库中去。有时候,我们可能并不需要改动数据(比如我们只是简单地取出一个Entity然后把它绑定到UI上面去),那么在这个时候,Tracking机制就比较多余了。在EF中,我们可以以MergeOption.NoTracking=false来取得同样的效果。

    ADO.NET Entity Framework 是.Net Framework 3.5 SP1 引入的实体框架,它使开发人员可以通过对象模型(而不是逻辑/关系数据模型)专注于数据。实体框架Entity Framework使用概念层、映射层和逻辑层将逻辑数据库结构抽象化。本文http://forum.entlib.com 开源论坛小组提供。

  • 相关阅读:
    【技术博客】JWT -- JSON WEB TOKEN
    [2020 BUAA 软件工程]结对项目作业
    [2020 BUAA 软件工程]软件案例分析
    [2020 BUAA 软件工程]个人项目作业
    [2020 BUAA 软件工程]个人博客作业
    [2020 BUAA 软件工程]第 1 次个人作业
    BUAA_OO第四单元总结性博客作业
    BUAA_OO第三单元总结性博客作业
    BUAA_OO第二单元总结性博客作业
    北航OO第四单元总结(课程总结)
  • 原文地址:https://www.cnblogs.com/zjp8023/p/EF04.html
Copyright © 2020-2023  润新知