共用方式為


DeleteFunction 項目 (MSL)

對應規格語言 (MSL) 中的 DeleteFunction 項目會將概念模型中的實體類型或關聯的刪除函式對應至基礎資料庫中的預存程序。 修改函式所對應的預存程序必須在儲存模型中宣告。 如需詳細資訊,請參閱Function 項目 (SSDL)

Cc716748.note(zh-tw,VS.100).gif注意:
如果沒有將實體類型的 [插入]、[更新] 或 [刪除] 三種作業都對應到預存程序,則若在執行階段中執行未對應的作業,且擲回 UpdateException,未對應的作業會失敗。

套用至 EntityTypeMapping 的 DeleteFunction

DeleteFunction 項目套用至 EntityTypeMapping 項目時,前者項目會將概念模型中實體類型的刪除函式對應至預存程序。

DeleteFunction 項目套用至 EntityTypeMapping 項目時,前者項目可以有下列子項目:

適用屬性

下表描述的屬性可套用至 DeleteFunction 項目 (當它已套用至 EntityTypeMapping 項目時)。

屬性名稱 必要

FunctionName

刪除函式所對應至之預存程序的命名空間限定名稱。 預存程序必須已宣告於儲存模型中。

RowsAffectedParameter

會傳回受影響之資料列數的輸出參數名稱。

範例

下列範例是以 School 模型為基礎,顯示用來將 Person 實體類型的刪除函式對應至 DeletePerson 預存程序的 DeleteFunction 項目。 DeletePerson 預存程序已宣告於儲存模型中。

<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>
      <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>
</EntitySetMapping>

套用至 AssociationSetMapping 的 DeleteFunction

DeleteFunction 項目套用至 AssociationSetMapping 項目時,前者項目會將概念模型中之關聯的刪除函式對應至預存程序。

DeleteFunction 項目套用至 AssociationSetMapping 項目時,前者項目可以有下列子項目:

適用屬性

下表描述的屬性可套用至 DeleteFunction 項目 (當它已套用至 AssociationSetMapping 項目時)。

屬性名稱 必要

FunctionName

刪除函式所對應至之預存程序的命名空間限定名稱。 預存程序必須已宣告於儲存模型中。

RowsAffectedParameter

會傳回受影響之資料列數的輸出參數名稱。

範例

下列範例是以 School 模型為基礎,顯示用來將 CourseInstructor 關聯的刪除函式對應至 DeleteCourseInstructor 預存程序的 DeleteFunction 項目。 DeleteCourseInstructor 預存程序已宣告於儲存模型中。

<AssociationSetMapping Name="CourseInstructor" 
                       TypeName="SchoolModel.CourseInstructor" 
                       StoreEntitySet="CourseInstructor">
  <EndProperty Name="Person">
    <ScalarProperty Name="PersonID" ColumnName="PersonID" />
  </EndProperty>
  <EndProperty Name="Course">
    <ScalarProperty Name="CourseID" ColumnName="CourseID" />
  </EndProperty>
  <ModificationFunctionMapping>
    <InsertFunction FunctionName="SchoolModel.Store.InsertCourseInstructor" >   
      <EndProperty Name="Course">
        <ScalarProperty Name="CourseID" ParameterName="courseId"/>
      </EndProperty>
      <EndProperty Name="Person">
        <ScalarProperty Name="PersonID" ParameterName="instructorId"/>
      </EndProperty>
    </InsertFunction>
    <DeleteFunction FunctionName="SchoolModel.Store.DeleteCourseInstructor">
      <EndProperty Name="Course">
        <ScalarProperty Name="CourseID" ParameterName="courseId"/>
      </EndProperty>
      <EndProperty Name="Person">
        <ScalarProperty Name="PersonID" ParameterName="instructorId"/>
      </EndProperty>
    </DeleteFunction>
  </ModificationFunctionMapping>
</AssociationSetMapping>

另請參閱

其他資源

CSDL、SSDL 和 MSL 規格
模型及對應 (Entity Framework)