Entity Framework 介绍
Entity Framework的全称是ADO.NET Entity Framework,是微软开发的基于ADO.NET的ORM(Object/Relational Mapping)框架。使开发人员能够通过对概念应用程序模型编程(而不是直接对关系存储架构编程)来创建数据访问应用程序。目标是降低面向数据应用程序所需的代码量并减轻维护工作。实体框架应用程序有以下优点:
- 应用程序可以通过更加以应用程序为中心的概念模型(包括具有继承性、复杂成员和关系的类型)来工作。
-
应用程序不再对特定的数据引擎或存储架构具有硬编码依赖性。
-
可以在不更改应用程序代码的情况下更改概念模型与特定于存储的架构之间的映射。
-
开发人员可以使用可映射到各种存储架构(可能在不同的数据库管理系统中实现)的一致的应用程序对象模型。
-
多个概念模型可以映射到同一个存储架构。
-
语言集成查询 (LINQ) 支持可为针对概念模型的查询提供编译时语法验证。
EDM(Entity Data Model)
构建应用程序或服务时常用的一种长期存在的设计方法是将应用程序或服务分为三部分:域模型、逻辑模型和物理模型。域模型定义要建模的系统中的实体和关系。关系数据库的逻辑模型通过外键约束将实体和关系规范化到表中。物理模型通过制定分区和索引等存储详细信息实现特定数据引擎的功能。
实体框架 可使开发人员查询域模型(在实体框架 中称为“概念”模型)中的实体和关系,同时依靠实体框架 将这些操作转换为特定于数据源的命令。 这使应用程序不再对特定数据源具有硬编码的依赖性。 概念模型、存储模型以及这两者之间的映射以基于 XML 的架构表示,并在具有对应扩展名的文件中定义:
- 概念架构定义语言 (CSDL) 定义概念模型。 CSDL 是实体框架 对于实体数据模型的实现。 文件扩展名为 .csdl。
- 存储架构定义语言 (SSDL) 定义存储模型,也称为“逻辑模型”。 文件扩展名为 .ssdl。
- 映射规范语言 (MSL) 定义存储模型与概念模型之间的映射。 文件扩展名为 .msl。
实体框架体系结构
ADO.NET Entity Framework 以Entity Data Model (EDM) 为主。通过LINQ to ENtites、Entity SQL(与存储无关的sql方言)访问和更改实体数据。