分类:新浪微博
语言:简体中文
大小:未知
发布时间:12-01-23
【内容简介】:(维基百科)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),让资料存取的工作得以顺利与完整的进行。 * 概念层:负责向上的物件与属性显露与存取。 * 对应层:将上方的概念层和底下的储存层的资料结构对应在一起。 * 储存层:依不同资料库与资料结构,而显露出实体的资料结构体,和 Provider 一起,负责实际对资料库的存取和 SQL 的产生。架构概念层结构概念层结构定义了物件模型 (Object Model),让上层的应用程式码可以如物件导向的方式般存取资料,概念层结构是由 CSDL (Conceptual Schema Definition Language) 所撰写。对应层结构对应层结构负责将上层的概念层结构以及下层的储存体结构中的成员结合在一起,以确认资料的来源与流向。对应层结构是由 MSL (Mapping Specification Language) 所撰写。储存层结构储存层结构是负责与资料库管理系统(DBMS)中的资料表做实体对应 (Physical Mapping),让资料可以输入正确的资料来源中,或者由正确的资料来源取出。它是由 SSDL (Storage Schema Definition Language) 所撰写。开发工具目前 ADO.NET Entity Framework 的开发,在 Visual Studio 2008 中有充分的支援,在安装 Visual Studio 2008 Service Pack 1 后,档案范本中即会出现 ADO.NET 实体资料模型 (ADO.NET Entity Data Model) 可让开发人员利用 Entity Model Designer 来设计 EDM,EDM 亦可由Windows记事本等文字编辑器所编辑。支援厂商目前已有数个资料库厂商或元件开发商宣布要支援 ADO.NET Entity Framework[5]: * Mircosoft,支持MsSQL. * Core Lab,支援Oracle、MySQL、PostgreSQL 与 SQLite 资料库。 * IBM,实作 DB2 使用的 LINQ Provider。 * MySQL,发展 MySQL Server 所用的 Provider。 * Npqsql,发展 PostgreSQL 所用的 Provider。 * OpenLink Software,发展支援多种资料库所用的 Provider。 * Phoenix Software International,发展支援 SQLite 资料库的 Provider。 * Sybase,将支援 Anywhere 资料库。 * VistaDB Software,将支援 VistaDB 资料库。 * DataDirect Technologies,发展支援多种资料库所用的 Provider。 * Firebird,支援 Firebird 资料库。...