分享

Entity Framework架构介绍

 蜗牛之窝 2012-06-10

Entity Framework 整体架构如图:

Entity Framework架构介绍

 

Entity Data Model(EDM)是类和数据库之间的映射模型,它包含三个映射文件。

LINQ to Entities和Entity SQL是查询对象模型的两种语言。

Object Services层在执行查询时将查询转换为一个命令树,并将这个命令树传递给Entity Client;在返回结果时将Entity Client层获取的对象表格式数据转换为对象,同时它也负责管理对象状态,跟踪对象的改变。

Entity Client data provider层又称为Entity Client主要将LINQ to Entities和Entity SQL的查询转换为SQL语句,同时将数据库表格式数据转换为对象表格式数据,并传递给Object Services层。

1、EDM

EDM由三个XML文件组成,三个文件主要提供相关的metadata。如表:

FilenameDescriptionAlternative nameExtension
Conceptual modelDescribes the model classes and
their relationships
Conceptual schema, conceptual
side
CSDL
Storage modelDescribes the database tables,
views, and stored procedures, and
their keys and relationships
Storage schema, storage sideSSDL
Mapping modelMaps the conceptual and storage
models
Mapping schema, mapping sideMSL

 

在运行时,这些文件将被解析为对象,这些对象可以被查询从而获得类,数据库以及映射的metadata,当Entity Framework进行映射时,它会查询EDM从而获取metadata。

Visual Studio的EF designer team设计了新的文件EDMX文件,EDMX文件将上述三个文件集合起来同时加入了设计器需要的信息,然而,EDM才是真正的映射层,在编译时,EDMX文件将被分割开,并产生三个EDM文件。

2、Object Services

Object Services在EF中主要负责管理对象。

当执行查询时,Object Services将查询转换为一个命令树,并将这个命令树传递给Entity Client,这一过程称为查询转换,转换过程会因使用LINQ to Entities或者Entity SQL而不同。

当返回结果时,Object Services将Entity Client层获取的对象表格式数据转换为对象,之所以成为对象表格式数据,是因为它与数据库存储的数据库表格式数据有所不同,对象表格式数据的没一行代 表一个对象,如果它有属性引用其它类,它的列将会含有该类的整个行,这一过程称为object materialization,例如:

Entity Framework架构介绍

Context是Object Services和用户的接口,它像一个缓存一样保存着当前的对象模型,这些对象同时被state manager跟踪,这个机制将会管理对象的改变,并在适当时候正确的更新到数据库。

3、Entity Client

在执行查询时,Entity Client将命令数转换为SQL语句,在返回结果时,Entity Client将数据库表格式数据转换为对象表格式数据,并传递给Object Services层。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多