UpdateFunction 項目 (MSL)
對應規格語言 (MSL) 中的 UpdateFunction 項目會將概念模型中的實體類型的更新函式對應至基礎資料庫中的預存程序。 修改函式所對應的預存程序必須在儲存模型中宣告。 如需詳細資訊,請參閱Function 項目 (SSDL)。
注意: |
---|
如果沒有將實體類型的 [插入]、[更新] 或 [刪除] 三種作業都對應到預存程序,則若在執行階段中執行未對應的作業,且擲回 UpdateException,未對應的作業會失敗。 |
UpdateFunction 項目可以是 ModificationFunctionMapping 項目的子項目,及套用至 EntityTypeMapping 項目。
UpdateFunction 項目可以擁有下列子項目:
AssociationEnd (零或多個)
ComplexProperty (零或多個)
ResultBinding (零或一個)
ScarlarProperty (零或多個)
適用屬性
下表描述可套用至 UpdateFunction 項目的屬性。
屬性名稱 | 必要 | 值 |
---|---|---|
FunctionName |
是 |
更新函式所對應至之預存程序的命名空間限定名稱。 預存程序必須已宣告於儲存模型中。 |
RowsAffectedParameter |
否 |
會傳回受影響之資料列數的輸出參數名稱。 |
範例
下列範例是以 School 模型為基礎,顯示用來將 Person 實體類型的更新函式對應至 UpdatePerson 預存程序的 UpdateFunction 項目。 UpdatePerson 預存程序已宣告於儲存模型中。
<EntityTypeMapping TypeName="SchoolModel.Person">
<ModificationFunctionMapping>
<InsertFunction FunctionName="SchoolModel.Store.InsertPerson">
<ScalarProperty Name="EnrollmentDate"
ParameterName="EnrollmentDate" />
<ScalarProperty Name="HireDate" ParameterName="HireDate" />
<ScalarProperty Name="FirstName" ParameterName="FirstName" />
<ScalarProperty Name="LastName" ParameterName="LastName" />
<ResultBinding Name="PersonID" ColumnName="NewPersonID" />
</InsertFunction>
<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>
<DeleteFunction FunctionName="SchoolModel.Store.DeletePerson">
<ScalarProperty Name="PersonID" ParameterName="PersonID" />
</DeleteFunction>
</ModificationFunctionMapping>
</EntityTypeMapping>