次の方法で共有


EntitySetMapping 要素 (MSL)

マッピング仕様言語 (MSL) の EntitySetMapping 要素は、概念モデルのあらゆる型のエンティティ セットをストレージ モデルのエンティティ セットにマップします。概念モデルのエンティティ セットは、同じ型のエンティティのインスタンス (および派生型) の論理コンテナーです。ストレージ モデルのエンティティ セットは、基になるデータベースのテーブルまたはビューを表します。概念モデルのエンティティ セットは、EntitySetMapping 要素の Name 属性の値によって指定されます。マップ先のテーブルまたはビューは、MappingFragment 要素の各子要素、または EntitySetMapping 要素自体の StoreEntitySet 属性によって指定されます。

EntitySetMapping 要素には、次の子要素を含めることができます。

適用可能な属性

次の表は、EntitySetMapping 要素に適用できる属性を示しています。

属性名

必須

Name

はい

マッピングされている概念モデルのエンティティ セットの名前。

TypeName1

いいえ

マッピングされている概念モデルのエンティティ型の名前。

StoreEntitySet1

いいえ

マップ先のストレージ モデルのエンティティ セットの名前。

MakeColumnsDistinct

いいえ

個別の行のみが返されるかどうかによって True または False。

この属性が True に設定されている場合、EntityContainerMapping 要素の GenerateUpdateViews 属性を False に設定する必要があります。

1TypeName 属性と StoreEntitySet 属性を EntityTypeMapping 子要素と MappingFragment 子要素の代わりに使用して、単一エンティティ型を単一テーブルにマップすることができます。

次の例は、概念モデルの Courses エンティティ セットの 3 つの型 (1 つの基本型と 2 つの派生型) を基になるデータベースの 3 つの異なるテーブルにマップする EntitySetMapping 要素を示します。テーブルは各 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>
<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 仕様

その他の技術情報

モデリングとマッピング