闲来无事,翻译一篇Engity Framework的文章,原文链接:http://msdn.microsoft.com/en-us/data/aa937709
微软的ADO.NET Entity Framework是一个对象/关系映射(ORM)框架,它使得开发人员像业务相关的对象一样来操作关系数据,而不用像他们过去经常那样,写很多数据访问的代码。通过使用EF,开发者通过LINQ来实现查询,然后获取并管理强类型的对象。EF的对象关系影视实现提供了诸如变化追踪、唯一标识、延迟加载、以及查询转换等功能以便开发者可以专注于应用相关的业务逻辑,而不是数据访问的实现。
EF的主要功能(high level capabilities,不知道这样翻译合适不合适)有:
- 支持多种数据库(包括微软的SQL,Oracle,和DB2)
- 包含丰富的映射引擎,这些引擎可以处理现实的数据库模式,并很好的支持存储过程。
- 提供了VS集成的工具以便显示的创建实体模型,还可以从一个数据库自动生成模型。也可以从模型生成数据库,还可以手动的编辑该模型以便更好地控制。
- 提供了Code First的功能来用已有的代码创建实体模型。Code first也可以隐射到一个已有的数据库,或者从模型生成数据库。
- 很好的集成到了各种.NET应用编程模型中包括ASP.NET,WPF,WCF,WCF数据服务(以前的ADO.NET数据服务)
- EF是基于老的ADO.NET模型的,通过把ADO.NET的驱动模型升级来支持新的EF功能。就是这个原因,以前用ADO.NET的应用可以轻易的通过ADO.NET开发者所熟悉的编程模型升级到EF。
使用EF框架来开发数据驱动的应用程序有如下优点:
- 节省开发时间:EF框架提供了核心的数据访问功能,因此开发人员可以专注于应用逻辑。
- 开发人员可以在更过工作在一个应用为中心的对象模型上,包括类型继承、复杂类型、以及关系。在.NET框架4中,EF还通过Plain Old CLR Objects(POCO)实体支持Persistance Ignorance。(译著:最后这句不知如何翻译)
- 通过支持独立于物理/存储模型的概念模型,EF把应用程序从依赖特定数据引擎或者存储模式的硬编码上解放出来。
- 对象模型和存储模式间的映射可以不用改变应用程序代码就可以改变。
- Ling to Entities还提供了智能感知以及对概念模型查询的编译时语法检查。
EF用实体对象模型(EDM)来描述应用程序相关的对象或者概念模型,开发人员就在概念模型上工作。EDM通过著名的实体关系模型(Dr. Peter Chen介绍过)来提高逻辑数据模式的抽象水平。EDM最初是为了变成一个不同开发人员通用的数据模型以及微软服务器技术的目标开发的。因此,EF创建的EDM也可以被WCF数据服务(以前的ADO.NET数据服务),Windows Azure表存储,Sharepoint 2010,Sql Server Reporting Service, 以及Sql Server PowerPivot for Excel使用,将来还会有更多。