ADO.NET Entity Framework 如何:定义单个实体映射到两个表的模型
2010-12-29 18:38
676 查看
本主题介绍如何手动创建一个概念模型,其中将一个实体类型映射到基础数据库中的两个表。可以使用相同的概念将一个实体类型映射到两个以上的表。
只有在满足以下条件的情况下,才应将一个实体类型映射到多个表:
要映射的多个表共享一个公共键。
所映射的实体类型在每个基础表中有对应的项。换言之,该实体类型表示的数据在两个表之间具有一对一的对应关系;该实体类型表示两个表的内部联接。
以下是手动定义一个实体映射到两个表的模型的基本步骤:
定义一个实体类型,该类型的属性对应于每个基础表中的列。有关更多信息,请参见 EntityType 元素 (CSDL)。
通过对每个基础表使用 MappingFragment 元素,定义实体类型的映射。 有关更多信息,请参见 EntityTypeMapping 元素 (MSL) 和 MappingFragment 元素 (MSL)。
下面的示例假定您已经安装了 School 示例数据库,并且您已经手动将项目配置为使用实体框架: 有关更多信息,请参见 创建 School 示例数据库(实体框架快速入门)和 配置实体框架(实体框架任务)。
Instructor 实体类型具有映射到 Person 和 OfficeAssignment 表中的所有列的属性(有关这两个表的详细信息,请参见上面的存储模型)。
在 Instructor 实体类型的 EntityTypeMapping 元素内,使用单独的 MappingFragment 元素将属性映射到适当的表。
请参见
定义高级数据模型(实体框架任务)
说明: |
---|
建议使用 ADO.NET 实体数据模型工具来定义实体类型映射到多个表的模型。 有关更多信息,请参见 演练:将一个实体映射到多个表(实体数据模型工具)。 |
要映射的多个表共享一个公共键。
所映射的实体类型在每个基础表中有对应的项。换言之,该实体类型表示的数据在两个表之间具有一对一的对应关系;该实体类型表示两个表的内部联接。
以下是手动定义一个实体映射到两个表的模型的基本步骤:
定义一个实体类型,该类型的属性对应于每个基础表中的列。有关更多信息,请参见 EntityType 元素 (CSDL)。
通过对每个基础表使用 MappingFragment 元素,定义实体类型的映射。 有关更多信息,请参见 EntityTypeMapping 元素 (MSL) 和 MappingFragment 元素 (MSL)。
下面的示例假定您已经安装了 School 示例数据库,并且您已经手动将项目配置为使用实体框架: 有关更多信息,请参见 创建 School 示例数据库(实体框架快速入门)和 配置实体框架(实体框架任务)。
说明: |
---|
下面的示例将一个实体类型映射到 School 示例数据库中的 Person 和 OfficeAssignement 表。 注意,将实体类型映射到这些表的条件得到了满足。也就是说,两个表的内部联接将导致所有人都会分配到办公室。 |
创建存储模型
将下面的 XML 文件添加到您的项目中并将其命名为 School.ssdl。创建概念模型
将下面的 XML 文件添加到您的项目中并将其命名为 School.csdl。 注意下列事项:Instructor 实体类型具有映射到 Person 和 OfficeAssignment 表中的所有列的属性(有关这两个表的详细信息,请参见上面的存储模型)。
说明: |
---|
因为 Instructor 实体类型是一个继承的类型,所以它会继承其基类型 Person 的所有属性。 除了具有 Instructor 类型特有的属性之外, Instructor 实体类型还具有映射到基础表的所有列的属性。 |
定义概念模型与存储模型之间的映射
将下面的 XML 文件添加到您的项目中并将其命名为 School.msl。 注意下列事项:在 Instructor 实体类型的 EntityTypeMapping 元素内,使用单独的 MappingFragment 元素将属性映射到适当的表。
请参见
其他资源
CSDL、SSDL 和 MSL 规范定义高级数据模型(实体框架任务)
相关文章推荐
- ADO.NET Entity Framework如何:定义单个实体映射到两个表的模型
- ADO.NET Entity Framework 如何:手动定义模型和映射文件(实体框架)
- ADO.NET Entity Framework 如何:通过每个层次结构一个表继承以定义模型(实体框架)
- ADO.NET Entity Framework 如何:通过每种类型多个实体集定义模型(实体框架)
- ADO.NET Entity Framework如何:通过每种类型一个表继承以定义模型(实体框架)
- ADO.NET Entity Framework如何:通过每个层次结构一个表继承以定义模型(实体框架)
- ADO.NET Entity Framework如何:通过每种类型多个实体集定义模型(实体框架)
- ADO.NET Entity Framework如何:使用存储过程定义模型(实体框架)
- ADO.NET Entity Framework 如何:创建模型及映射文件嵌入资源(实体框架)
- ADO.NET Entity Framework如何:定义具有修改存储过程的模型(实体框架)
- ADO.NET Entity Framework 如何:使用存储过程定义模型(实体框架)
- ADO.NET Entity Framework 如何:定义具有修改存储过程的模型(实体框架)
- ADO.NET Entity Framework 如何:通过每种类型一个表继承以定义模型(实体框架)
- ADO.NET Entity Framework 如何:使用 EdmGen.exe 生成模型和映射文件
- ADO.NET Entity Framework如何:使用实体数据模型向导(实体框架)
- ADO.NET Entity Framework 如何:使用 EdmGen.exe 验证模型和映射文件
- ADO.NET Entity Framework定义高级数据模型(实体框架任务)
- ADO.NET Entity Framework 如何:定义连接字符串(实体框架)
- ADO.NET Entity Framework 如何:自定义建模和映射文件以使用自定义对象(实体框架)
- ADO.NET Entity Framework 定义高级数据模型(实体框架任务)