EntitySetMapping 項目 (MSL)
對應規格語言 (MSL) 中的 EntitySetMapping 項目會將概念模型實體集中的所有類型對應至儲存模型中的實體集。概念模型中的實體集就是相同型別 (及衍生型別) 之實體的執行個體邏輯容器。儲存模型中的實體集代表基礎資料庫中的資料表或檢視。概念模型實體集是由 EntitySetMapping 項目的 Name 屬性值所指定。對應到資料表或檢視是由 MappingFragment 項目中的每個子項目或 EntitySetMapping 項目本身中之 StoreEntitySet 屬性所指定。
EntitySetMapping 項目可以擁有下列子項目:
EntityTypeMapping (零或多個)
QueryView (零或一個)
MappingFragment (零或多個)
適用屬性
下表描述可套用至 EntitySetMapping 項目的屬性。
屬性名稱 |
必要 |
值 |
---|---|---|
Name |
是 |
要對應的概念模型實體集名稱。 |
TypeName1 |
否 |
要對應的概念模型實體類型名稱。 |
StoreEntitySet1 |
否 |
要對應至的儲存模型實體集名稱。 |
MakeColumnsDistinct |
否 |
True 或 False 是根據是否只傳回相異資料列而定。 如果此屬性已設定為 True,EntityContainerMapping 項目的 GenerateUpdateViews 屬性必須設定為 False。 |
1TypeName 和 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>
<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>