EntitySetMapping 元素 (MSL)
以映射规范语言 (MSL) 表示的 EntitySetMapping 元素将概念模型实体集中所有类型映射到存储模型中的实体集。 概念模型中的实体集为同一类型(和派生类型)实体的实例的逻辑容器。 存储模型中的实体集表示基础数据库中的一个表或视图。 概念模型实体集由 EntitySetMapping 元素的 Name 特性的值指定。 映射到的表或视图由每个子 MappingFragment 元素或 EntitySetMapping 元素本身中的 StoreEntitySet 特性指定。
EntitySetMapping 元素可以具有以下子元素:
EntityTypeMapping(零个或多个)
QueryView(零个或一个)
MappingFragment(零个或多个)
适用的特性
下表介绍可应用于 EntitySetMapping 元素的特性。
特性名称 | 是否必需 | 值 |
---|---|---|
Name |
是 |
要映射的概念模型实体集的名称。 |
TypeName 1 |
否 |
要映射的概念模型实体类型的名称。 |
StoreEntitySet 1 |
否 |
要映射到的存储模型实体集的名称。 |
MakeColumnsDistinct |
否 |
True 或 False,具体取决于是否仅返回不同行。 如果此特性设置为 True,则 EntityContainerMapping 元素的 GenerateUpdateViews 特性必须设置为 False。 |
1 可以使用 TypeName 和 StoreEntitySet 特性替代 EntityTypeMapping 和 MappingFragment 子元素,将单个实体类型映射到单个表。
示例
下面的示例显示了一个 EntitySetMapping 元素,该元素将概念模型的 Courses 实体集中的三个类型(一个基类型和两个派生类型)映射到基础数据库中三个不同的表。 该表由每个 MappingFragment 元素中的 StoreEntitySet 特性指定。
<EntitySetMapping Name="Courses">
<EntityTypeMapping TypeName="IsTypeOf(SchoolModel1.Course)">
<MappingFragment StoreEntitySet="Course">
<ScalarProperty Name="CourseID" ColumnName="CourseID" />
<ScalarProperty Name="DepartmentID" ColumnName="DepartmentID" />
<ScalarProperty Name="Credits" ColumnName="Credits" />
<ScalarProperty Name="Title" ColumnName="Title" />
</MappingFragment>
</EntityTypeMapping>
<EntityTypeMapping TypeName="IsTypeOf(SchoolModel1.OnlineCourse)">
<MappingFragment StoreEntitySet="OnlineCourse">
<ScalarProperty Name="CourseID" ColumnName="CourseID" />
<ScalarProperty Name="URL" ColumnName="URL" />
</MappingFragment>
</EntityTypeMapping>
<EntityTypeMapping TypeName="IsTypeOf(SchoolModel1.OnsiteCourse)">
<MappingFragment StoreEntitySet="OnsiteCourse">
<ScalarProperty Name="CourseID" ColumnName="CourseID" />
<ScalarProperty Name="Time" ColumnName="Time" />
<ScalarProperty Name="Days" ColumnName="Days" />
<ScalarProperty Name="Location" ColumnName="Location" />
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>