다음을 통해 공유


ModificationFunctionMapping 요소(MSL)

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

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

Cc716778.note(ko-kr,VS.100).gif참고:
상속 계층 구조의 한 엔터티에 대한 수정 함수가 저장 프로시저에 매핑된 경우 계층 구조의 모든 형식에 대한 수정 함수가 저장 프로시저에 매핑되어야 합니다.

ModificationFunctionMapping 요소는 EntityTypeMapping 요소 또는 AssociationSetMapping 요소의 자식일 수 있습니다.

ModificationFunctionMapping 요소에는 다음 자식 요소가 있을 수 있습니다.

ModificationFunctionMapping 요소에 적용할 수 있는 특성은 없습니다.

예제

다음 예제에서는 School 모델People 엔터티 집합에 대한 엔터티 집합 매핑을 보여 줍니다. Person 엔터티 형식에 대한 열 매핑 외에도 Person 형식에 대한 삽입, 업데이트 및 삭제 함수 매핑을 보여 줍니다. 매핑되는 함수는 저장소 모델에서 선언됩니다.

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

예제

다음 예제에서는 School 모델CourseInstructor 연결 집합에 대한 연결 집합 매핑을 보여 줍니다. CourseInstructor 연결에 대한 열 매핑 외에도 CourseInstructor 연결에 대한 삽입 및 삭제 함수 매핑을 보여 줍니다. 매핑되는 함수는 저장소 모델에서 선언됩니다.

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

참고 항목

작업

방법: 저장 프로시저로 모델 정의(Entity Framework)

기타 리소스

Walkthrough: Mapping an Entity to Stored Procedures
CSDL, SSDL 및 MSL 사양