Entity Framework是什么东西?

ADO.NET Entity Framework

ADO.NET Entity Framework 是微软以ADO.NET 为基础所发展出来的对象关系对应(O/R Mapping)解决方案,早期被称为ObjectSpace,现已经包含在 Visual Studio 2008 Service Pack 1以及.NET Framework 3.5 Service Pack 1 中发表。

简介

ADO.NET Entity Framework 以Entity Data Model(EDM)为主,将数据逻辑层切分为三块,分别为Conceptual Schema,Mapping Schema与Storage Schema三层,其上还有Entity Client,Object Context以及LINQ可以使用。

背景

长久以来,程序设计师和数据库总是保持着一种微妙的关系,在商用程序中,数据库一定是不可或缺的元件,这让程序设计师一定要为了连接与访问数据而去学习SQL指令,因此在信息业中有很多人都在研究如何将程序设计模型和数据库集成在一起,对象关系对应(Object-Relational Mapping)的技术就是由此而生,像Hibernate或NHibernate都是这个技术下的产物,而微软虽然有了ADO.NET这个数据访问的利器,但却没有像NHIbernate这样的对象对应工具,因此微软在.NET Framework 2.0发展时期,就提出了一个ObjectSpace的概念,ObjectSpace可以让应用程序可以使用完全对象化的方法连接与访问数据库,其技术概念与NHibernate相当类似,然而ObjectSpace工程相当大,在.NET Framework 2.0完成时仍无法全部完成,因此微软将ObjectSpace纳入下一版本的.NET Framework中,并且再加上一个设计的工具(Designer),构成了现在的ADO.NET Entity Framework。

Entity Framework 利用了抽象化数据结构的方式,将每个数据库对象都转换成应用程序对象(entity),而数据字段都转换为属性(property),关系则转换为结合属性(association),让数据库的E/R模型完全的转成对象模型,如此让程序设计师能用最熟悉的编程语言来调用访问。而在抽象画的结构之下,则是高度集成与对应结构的概念层、对应层和储存层,以及支持Entity Framework 的数据提供者(provider),让数据访问的工作得以顺利与完整的进行。

  (1)概念层:负责向上的对象与属性显露与访问。

  (2)对应层:将上方的概念层和底下的存储层的数据结构对应在一起。

  (3)储存层:依不同数据库与数据结构,而显露出实体的数据结构体,和Provider一起,负责实际对数据库的访问和SQL的产生。

 

posted @ 2014-02-18 11:27  Dylan(迪伦)  阅读(1489)  评论(0编辑  收藏  举报