AEF横空出世——揭开ADO.NET Entity Framework的面纱

    ADO.NET Entity Framework是微软官方的ORM解决方案,由此不由得想起.NET程序设计中著名的ORM解决方案——来自民间开源的的NHibernate。伴随引人注目的VS2010即将横空出世,新的ADO.NET Entity Framework将以如何的身姿展现在大家面前呢?

    Entity Framework可以解决那些问题?

1、提供一个O/R Mapping的解决方案
2、提升Application-Level Domain之抽象程度
3、可以用单一的LINQ to Entity或Entity SQL查询各种数据库
4、以EDM(Entity Data Model)来统一所有的数据模型,例如Entity Framework、Data Service、Dynamic Data,甚至将来
的Reporting Service、Analysis Service、Portal等所有数据模型都可以用EDM来描述,进而以一致性的查询语法查遍所有的资料。

    • 目前.NET哪些技术用到EF?
      ADO.NET Data Services
      .NET RIA Servives
      Silverlight
      ADO.NET Dynamic Data
      ASP.NET MVC Framework
      ASP.NET & WinForm
    • Entity Data Model定义成员

      Entity Framework框架示意图

        
      Storage Model(Logical Model)
      #目的是为了在关系型数据库中,将Entity及Relationships正规化成具有foreign key constrains的Table资料库
      #Store schema definition language file(SSDL)
      Conceptual Model
      #定义Entities及Relationships
      #Conceptual schema definition language file(CSDL)
      Mappings
      #定义Storage及Conceptual Model二者间对应
      #Mapping specification language file(MSL)

      Object Services对象服务
      #它是EF的一个部件System.Data.Entity.dll
      #需要引用两大命名空间System.Data.Objects&System.Data.Objects.DataClass
      两大命名空间汇总包含一群服务类,核心类别为ObjectContext及ObjectQuery
      #作为EDM中Entity Types作业的中介服务
      #Query、Insert、Update、Delete

      ObjectContext对象
      #EDM中Entities Type的Instance
      #对于Entity数据提供Object型式互动的能力
      #ObjectContext类别中包含了:
          Connection to database
          MetadataWorkspace对象
          ObjectStateManager对象

ObjectQuery对象
#ObjectQuery泛型类别代表了回传零或多个强类别Entity Objects的查询
#一个Object Query永远属于一个既存的Object Context,意即在使用ObjectQuery之前,一定要先建立一个Objcet Context。
#因为Object Context提供了建构与执行查询所需的Connection连线及Metadata资讯。

EF(EDM)三种查询资料的方式
LINQ to Entity
Entity SQL
Query Builder Methods

posted @ 2010-01-26 22:02  风影极光  阅读(3224)  评论(18编辑  收藏  举报