什么是Entity Framework

编写和管理ADO.NET是一个繁琐而又无聊的工作。微软为你的应用提供了一个名为“Entity Framework”的ORM框架来自动化管理你的数据库。

微软对Entity Framework给出了以下定义:

EF是一个对象关系映射(ORM)框架,它能使开发人员用关系型数据定义特定领域的对象,并且开发人员不再需要编写大量的数据库访问代码。使用Entity Framework,开发人员用Linq帮助他们进行查询,检索出的数据自动生成强类型对象。EF提供如变动追踪,身份验证,延迟加载,查询编译使得开发人员更加专注于他们的业务逻辑上而不是数据访问模块的开发上。EF是基于ADO.NET上进行增强的,它为开发人员提供了自动的数据持久化机制。

EF在以下三种场景中都可以使用。第一,如果你已经有存在的数据库,或者你想先设计好你的数据库再进行其他的开发。第二,你只想专注设计特定领域的类,然后才使用这些类来生成数据库。第三,你想通过visual studio提供的设计器来设计你的数据库模型,然后再从该模型中生成数据库和对应的类。

以下图例说明上面的三种情况。

1.EF帮助你从已有的数据库中建立类,这样你就可以通过这个类生成的实例和ADO.NET打交道。

2.你可以专注于你的业务来设计类型,EF根据这些类型帮助你创建数据库。

3.EF提供模型设计器,当你设计完成后,EF既帮你生成数据库也帮你生成类型代码。

 

什么是ORM

ORM是一种帮你将对象转化成关系型数据库中数据的工具,例如存入MS SQL Server中,并且是全自动的,无需额外的代码。O/RM包括三个主要的方面:业务对象,关系数据库对象和如何将业务对象转化为数据库对象(如表,视图,存储过程)的映射信息对象。ORM让我们可以独立的设计数据库和业务对象类。这让我们的应用程序更易于维护和可扩展。因此程序员们可以不再手动编写CRUD(Create, Read, Update, Delete)操作了。

ORM帮你生成类并与数据库进行互操作,如下所示

除了微软提供的开源ORM框架EF之外,还有许多.net 的ORM框架,如 DataObjects.Net, NHibernate, OpenAccess, SubSonic 等。