EntitySetMapping 要素 (MSL)
マッピング仕様言語 (MSL) の EntitySetMapping 要素は、概念モデルのあらゆる型のエンティティ セットをストレージ モデルのエンティティ セットにマップします。概念モデルのエンティティ セットは、同じ型のエンティティのインスタンス (および派生型) の論理コンテナーです。ストレージ モデルのエンティティ セットは、基になるデータベースのテーブルまたはビューを表します。概念モデルのエンティティ セットは、EntitySetMapping 要素の Name 属性の値によって指定されます。マップ先のテーブルまたはビューは、MappingFragment 要素の各子要素、または EntitySetMapping 要素自体の StoreEntitySet 属性によって指定されます。
EntitySetMapping 要素には、次の子要素を含めることができます。
EntityTypeMapping (0 個以上)
QueryView (0 個または 1 個)
MappingFragment (0 個以上)
適用可能な属性
次の表は、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>