다음을 통해 공유


DeleteFunction 요소(MSL)

MSL(매핑 사양 언어)의 DeleteFunction 요소는 개념적 모델의 엔터티 형식 또는 연결에 대한 삭제 함수를 기본 데이터베이스의 저장 프로시저에 매핑합니다. 수정 함수가 매핑되는 저장 프로시저는 저장소 모델에서 선언해야 합니다. 자세한 내용은 Function 요소(SSDL)를 참조하십시오.

Cc716748.note(ko-kr,VS.100).gif참고:
엔터티 형식의 세 가지 작업인 삽입, 업데이트 또는 삭제 작업을 저장 프로시저에 모두 매핑하지 않을 경우 매핑되지 않은 작업을 런타임에 실행하면 해당 작업은 실패하고 UpdateException이 throw됩니다.

EntityTypeMapping에 적용되는 DeleteFunction

EntityTypeMapping 요소에 적용될 경우 DeleteFunction 요소는 개념적 모델의 엔터티 형식에 대한 삭제 함수를 저장 프로시저에 매핑합니다.

DeleteFunction 요소는 EntityTypeMapping 요소에 적용된 경우 다음 자식 요소를 포함할 수 있습니다.

적용 가능한 특성

다음 표에서는 EntityTypeMapping 요소에 적용된 경우 DeleteFunction 요소에 적용할 수 있는 특성에 대해 설명합니다.

특성 이름 필수 여부

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

AssociationSetMapping 요소에 적용될 경우 DeleteFunction 요소는 개념적 모델의 연결에 대한 삭제 함수를 저장 프로시저에 매핑합니다.

DeleteFunction 요소는 AssociationSetMapping 요소에 적용된 경우 다음 자식 요소를 포함할 수 있습니다.

적용 가능한 특성

다음 표에서는 AssociationSetMapping 요소에 적용된 경우 DeleteFunction 요소에 적용할 수 있는 특성에 대해 설명합니다.

특성 이름 필수 여부

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)