ADO.NET Entity Framework如何:通过每种类型多个实体集定义模型(实体框架)
本主题描述如何创建每种类型多个实体集 (MEST) 的概念模型。通过为每种类型定义多个实体集 (MEST),可以在基础数据库中的多个表具有相同结构时简化代码。当使用的实体类型与其他类型没有关联时,定义一个 MEST 模型很简单。但是,若要为与其他类型存在关联的实体类型定义一个 MEST 模型,则必须为对象图中的每个类型实现 MEST。有关更多信息,请参见 MEST - 什么是 MEST 以及 MEST 如何工作?(可能为英文网页)本主题介绍如何为与其他类型没有关联的实体类型定义一个 MEST。
请注意,仅当基础数据库表具有相同结构时才应实现 MEST。
定义 MEST 模型的基本步骤如下:
-
使用多个 EntitySet 元素(每个元素具有相同的 EntityType 特性值)来在概念模型中为给定类型定义多个实体集。
-
使用映射规范语言 (MSL) 将每个实体集映射到适当的表。有关更多信息,请参见 EntitySetMapping 元素 (MSL)。
下面的示例假定您已经安装了下面的示例数据库:
该示例还假定您已经将项目配置为使用。有关更多信息,请参见 配置实体框架(实体框架任务)。
创建存储模型
-
将下面的 XML 文件添加到您的项目中并将其命名为 MEST.ssdl。
- 或 -
将一个空的 .edmx 文件 ( MEST.edmx) 添加到您的项目中,并用下面的 XML 文件中的 Schema 元素替换 edmx:StorageModels 元素下的 Schema 元素。 有关更多信息,请参见 如何:创建新的 .edmx 文件(实体数据模型工具)和 .edmx 文件概述(实体框架)。
请注意,存储模型中的表具有相同结构。
创建概念模型
-
将下面的 XML 文件添加到您的项目中并将其命名为 MEST.csdl。
- 或 -
在 .edmx 文件中,用下面的 XML 文件中的 Schema 元素替换 edmx:ConceptualModels 元素中的 Schema 元素。
请注意,已为 Course 实体类型定义了两个实体集。
定义概念模型与存储模型之间的映射
-
将下面的 XML 文件添加到您的项目中并将其命名为 MEST.msl。
- 或 -
在 .edmx 文件中,用下面的 XML 文件中的 Mapping 元素替换 edmx:Mappings 元素中的 Mapping 元素。
请注意,每个实体集分别映射到适当的基础数据库。