EntitySetMapping 元素 (MSL)

以映射规范语言 (MSL) 表示的 EntitySetMapping 元素将概念模型实体集中所有类型映射到存储模型中的实体集。 概念模型中的实体集为同一类型(和派生类型)实体的实例的逻辑容器。 存储模型中的实体集表示基础数据库中的一个表或视图。 概念模型实体集由 EntitySetMapping 元素的 Name 特性的值指定。 映射到的表或视图由每个子 MappingFragment 元素或 EntitySetMapping 元素本身中的 StoreEntitySet 特性指定。

EntitySetMapping 元素可以具有以下子元素:

适用的特性

下表介绍可应用于 EntitySetMapping 元素的特性。

特性名称 是否必需

Name

要映射的概念模型实体集的名称。

TypeName 1

要映射的概念模型实体类型的名称。

StoreEntitySet 1

要映射到的存储模型实体集的名称。

MakeColumnsDistinct

TrueFalse,具体取决于是否仅返回不同行。

如果此特性设置为 True,则 EntityContainerMapping 元素的 GenerateUpdateViews 特性必须设置为 False

1 可以使用 TypeNameStoreEntitySet 特性替代 EntityTypeMappingMappingFragment 子元素,将单个实体类型映射到单个表。

示例

下面的示例显示了一个 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>

另请参见

概念

CSDL 规范
SSDL 规范

其他资源

建模和映射(实体框架)