实体数据模型映射方案(应用程序方案)

实体框架支持各种方式用于在实体数据模型 (EDM) 中将概念模型映射到关系数据。有关更多信息,请参见 实体框架中的数据建模

实体框架当前支持以下实体数据模型 (EDM) 映射方案。

映射方案 说明

简单映射

在此映射方案中,概念模型中的每个实体都映射到存储模型中的单个表。这是实体数据模型工具所生成的默认映射。有关更多信息,请参见快速入门(实体框架)

实体拆分

在此映射方案中,概念模型中单个实体的属性映射到两个或更多基础表中的列。在此方案中,表必须共享公共主键。有关更多信息,请参见如何:通过将单个实体映射到两个表以定义模型

存储模型中的水平分区

在此映射方案中,概念模型中的单个实体类型映射到具有相同架构的两个或更多表。实体基于概念模型中定义的条件映射到表中。例如,AdventureWorks 销售模型中的 SalesOrderHeader 实体的布尔类型 OnlineOrderFlag 属性可以用于将实体数据分区到数据源中的不同表中,其中一个表用于联机订单,另一个表用于脱机订单。有关更多信息,请参见Condition 元素 (MappingFragment)

概念模型中的水平分区

在此映射方案中,概念模型中具有相同属性的多个实体类型映射到同一个表。条件子句用于指定表中的数据分别属于哪个实体类型。此映射类似于每个层次结构一个表继承映射。

每个层次结构一个表继承

在此映射方案中,继承层次结构中的所有类型都映射到同一个表。条件子句用于定义实体类型。有关更多信息,请参见如何:通过每个层次结构一个表继承以定义模型(实体框架)

每种类型一个表继承

在此映射方案中,所有类型都分别映射到各自的表。仅属于某个基类型或派生类型的属性存储在映射到该类型的一个表中。有关更多信息,请参见如何:通过每种类型一个表继承以定义模型(实体框架)

每种具体类型一个表继承

在此映射方案中,每个非抽象类型分别映射到不同的表。所有这些表所包含的列必须映射到派生类型的所有属性(包括从基类型继承的属性)。

每种类型多个实体集

在此映射方案中,单个实体类型在概念模型中以两个或更多独立的实体集进行表示。每个实体集分别映射到存储模型中的一个单独的表。有关更多信息,请参见如何:通过每种类型多个实体集定义模型(实体框架)

复杂类型

复杂类型是没有键属性的实体类型的非标量属性。复杂类型可以包含其他嵌套的复杂类型。复杂类型映射到存储模型中的表。有关更多信息,请参见如何:使用复杂类型定义模型(实体框架)

函数导入映射

在此方案中,存储模型中的存储过程映射到概念模型中的 FunctionImport 元素。执行此函数可使用映射的存储过程返回实体数据。有关更多信息,请参见如何:使用存储过程定义模型(实体框架)

修改函数映射

在此方案中,在存储模型中定义用于插入、更新和删除数据的存储过程。这些函数是为实体类型定义的,以便为特定实体类型提供更新功能。有关更多信息,请参见存储过程支持(实体框架)

定义查询映射

在此方案中,在存储模型中定义表示数据源中的表的查询。在映射到 SQL Server 数据库时,查询以数据源的本机查询语言(如 Transact-SQL)表示。此 DefiningQuery 元素映射到概念模型中的实体类型。查询以特定于存储的查询语言进行定义。有关更多信息,请参见 DefiningQuery 元素 (EntityContainer SSDL)。在使用定义查询时,无法使用标准更新过程将更新保存到数据源中。可以通过定义修改函数映射来进行更新。有关更多信息,请参见存储过程支持(实体框架)

查询视图映射

在此方案中,会在概念模型中的实体类型与存储模型中的关系表之间定义只读映射。此映射基于对存储模型进行的 Entity SQL 查询定义,该查询返回概念模型中的实体。有关更多信息,请参见 QueryView 元素 (EntitySetMapping)。在使用查询视图时,无法使用标准更新过程将更新保存到数据源中。可以通过定义修改函数映射来进行更新。有关更多信息,请参见存储过程支持(实体框架)

AssociationSet 映射

关联定义实体之间的关系。在具有一对一或一对多关联的简单映射中,在概念模型中定义关系的关联会映射到存储模型中的关联。还支持以下更高级的关联集映射:

  • 多对多关联。关联的两端都映射到存储模型中的链接表。

  • 自关联。此映射支持具有相同类型的两个实体之间的关联,如一个 Employee 与另一个 Employee 之间的关联。

  • 派生类型之间的关联。此映射支持一个层次结构中的派生类型与另一个层次结构中的派生类型之间的关联。

有关更多信息,请参见关联 (EDM)

有关实体数据模型工具所支持的映射方案的信息,请参见 ADO.NET 实体数据模型设计器概述

另请参见

概念

实体数据模型继承(应用程序方案)
实体框架资源
查询实体数据模型(应用程序方案)
对实体数据模型类编程(应用程序方案)
定义实体数据模型(应用程序方案)

其他资源

编程指南(实体框架)
示例(实体框架)