Entity Framework入门教程:什么是Entity Framework

Entity Framework简介

Entity Framework是微软提供的一个O/RM(对象关系映射)框架。它基于ADO.NET,为开发人员提供了一种自动化的机制来访问和存储数据库中的数据。

微软官方对Entity Framework的定义:
The Microsoft ADO.NET Entity Framework is an Object/Relational Mapping (ORM) framework that enables developers to work with relational data as domain-specific objects, eliminating the need for most of the data access plumbing code that developers usually need to write. Using the Entity Framework, developers issue queries using LINQ, then retrieve and manipulate data as strongly typed objects. The Entity Framework's ORM implementation provides services like change tracking, identity resolution, lazy loading, and query translation so that developers can focus on their application-specific business logic rather than the data access fundamentals.

实体框架在三种场景中很有用:
首先,如果您已经有了现有的数据库,或者希望在应用程序的其他部分之前设计数据库。
其次,您希望关注您的域类,然后从您的域类创建数据库。
第三,您希望在视觉设计器上设计数据库模式,然后创建数据库和类。

下图为以上三种场景的展示

【什么是O/RM】
ORM是一种用于将数据从域对象存储到关系数据库(如MS SQL Server)的工具。ORM包括三个主要部分:域类对象、关系数据库对象和映射到关系数据库对象的域对象(表、视图和存储过程)的映射信息。如下图

ORM使我们可以分开设计数据库和域类,使程序更易维护和扩展,并且它还可以自动化标准的CRUD操作(创建、读取、更新和删除),以便开发人员不需要手工编写。

Entity Framework的体系结构

下图显示了实体框架的总体架构:

  • EDM (Entity Data Model): EDM 包含了三个重要组成部分-概念模型、映射和存储模型。
  • Conceptual Model: 概念模型包含模型类及其关系。这将独立于您的数据库表设计。
  • Storage Model: 存储模型是数据库设计模型,包括表、视图、存储过程以及它们的关系和键。
  • Mapping: 映射包括关于如何将概念模型映射到存储模型的信息。
  • LINQ to Entities:LINQ to Entities是用于针对对象模型编写查询的查询语言。它返回在概念模型中定义的实体。
  • Entity SQL: Entity SQL 和 LINQ to Entities差不多,也是一种查询语言。
  • Object Service:对象服务是访问数据库数据并将其返回的主要入口点。对象服务负责实现具体化,这是将从实体客户端数据提供者(下一层)返回的数据转换为实体对象结构的过程
  • Entity Client Data Provider:这一层的主要职责是将L2E或实体SQL查询转换成由底层数据库理解的SQL查询。它与ADO.NET数据提供程序通信,从数据库中发送或检索数据。
  • ADO.Net Data Provider:这一层使用标准ADO.Net与数据库进行通信。

Entity Framework的安装

可以通过NuGet包管理器搜索EntityFramework然后进行安装,或者通过程序包管理器控制台安装

Install-Package EntityFramework

原文:
http://www.entityframeworktutorial.net/what-is-entityframework.aspx
http://www.entityframeworktutorial.net/EntityFramework-Architecture.aspx
http://www.entityframeworktutorial.net/EntityFramework5/setup-entityframework-environment.aspx

posted @ 2017-06-26 16:26  yangsofter  阅读(1305)  评论(0编辑  收藏  举报