EntityTypeMapping 項目 (MSL)
對應規格語言 (MSL) 中的 EntityTypeMapping 項目會定義概念模型中之實體類型和基礎資料庫中之資料表或檢視間的對應。 如需概念模型實體類型和基礎資料庫資料表或檢視的詳細資訊,請參閱 EntityType 項目 (CSDL) 和 EntitySet 項目 (SSDL)。 要對應之概念模型實體類型是由 EntityTypeMapping 項目的 TypeName 屬性所指定。 要對應之資料表或檢視是由 MappingFragment 項目之子項目的 StoreEntitySet 屬性所指定。
ModificationFunctionMapping 子項目可以用來將實體類型的插入、更新或刪除函式對應至資料庫中的預存程序。
EntityTypeMapping 項目可以擁有下列子項目:
MappingFragment (零或多個)
ModificationFunctionMapping (零或多個)
注意: |
---|
MappingFragment 和 ModificationFunctionMapping 項目不能同時當做 EntityTypeMapping 項目的子項目。 |
注意: |
---|
當 ScalarProperty 和 Condition 項目用於 FunctionImportMapping 項目內時,它只可以當做 EntityTypeMapping 項目的子項目。 |
適用屬性
下表描述可套用至 EntityTypeMapping 項目的屬性。
屬性名稱 | 必要 | 值 |
---|---|---|
TypeName |
是 |
要對應的概念模型實體類型之命名空間限定名稱。 如果型別是抽象型別或衍生型別,值必須是 |
範例
下列範例顯示的 EntitySetMapping 項目有兩個 EntityTypeMapping 子項目。 在第一個 EntityTypeMapping 項目中,SchoolModel.Person 實體類型已對應至 Person 資料表。 在第二個 EntityTypeMapping 項目中,SchoolModel.Person 類型的更新功能已對應至資料庫中的 UpdatePerson 預存程序。
<EntitySetMapping Name="People">
<EntityTypeMapping TypeName="SchoolModel.Person">
<MappingFragment StoreEntitySet="Person">
<ScalarProperty Name="PersonID" ColumnName="PersonID" />
<ScalarProperty Name="LastName" ColumnName="LastName" />
<ScalarProperty Name="FirstName" ColumnName="FirstName" />
<ScalarProperty Name="HireDate" ColumnName="HireDate" />
<ScalarProperty Name="EnrollmentDate" ColumnName="EnrollmentDate" />
</MappingFragment>
</EntityTypeMapping>
<EntityTypeMapping TypeName="SchoolModel.Person">
<ModificationFunctionMapping>
<UpdateFunction FunctionName="SchoolModel.Store.UpdatePerson">
<ScalarProperty Name="EnrollmentDate" ParameterName="EnrollmentDate"
Version="Current" />
<ScalarProperty Name="HireDate" ParameterName="HireDate"
Version="Current" />
<ScalarProperty Name="FirstName" ParameterName="FirstName"
Version="Current" />
<ScalarProperty Name="LastName" ParameterName="LastName"
Version="Current" />
<ScalarProperty Name="PersonID" ParameterName="PersonID"
Version="Current" />
</UpdateFunction>
</ModificationFunctionMapping>
</EntityTypeMapping>
</EntitySetMapping>
範例
下一個範例會顯示型別階層的對應,在該階層內根型別是抽象型別。 請注意 TypeName 屬性之 IsOfType
語法的用法。
<EntitySetMapping Name="People">
<EntityTypeMapping TypeName="IsTypeOf(SchoolModel.Person)">
<MappingFragment StoreEntitySet="Person">
<ScalarProperty Name="PersonID" ColumnName="PersonID" />
<ScalarProperty Name="FirstName" ColumnName="FirstName" />
<ScalarProperty Name="LastName" ColumnName="LastName" />
</MappingFragment>
</EntityTypeMapping>
<EntityTypeMapping TypeName="IsTypeOf(SchoolModel.Instructor)">
<MappingFragment StoreEntitySet="Person">
<ScalarProperty Name="PersonID" ColumnName="PersonID" />
<ScalarProperty Name="HireDate" ColumnName="HireDate" />
<Condition ColumnName="HireDate" IsNull="false" />
<Condition ColumnName="EnrollmentDate" IsNull="true" />
</MappingFragment>
</EntityTypeMapping>
<EntityTypeMapping TypeName="IsTypeOf(SchoolModel.Student)">
<MappingFragment StoreEntitySet="Person">
<ScalarProperty Name="PersonID" ColumnName="PersonID" />
<ScalarProperty Name="EnrollmentDate"
ColumnName="EnrollmentDate" />
<Condition ColumnName="EnrollmentDate" IsNull="false" />
<Condition ColumnName="HireDate" IsNull="true" />
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>