다음을 통해 공유


InsertFunction 요소(MSL)

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

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

InsertFunction 요소는 ModificationFunctionMapping 요소의 자식일 수 있으며 EntityTypeMapping 요소 또는 AssociationSetMapping 요소에 적용될 수 있습니다.

EntityTypeMapping에 적용되는 InsertFunction

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

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

적용 가능한 특성

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

특성 이름 필수 여부

FunctionName

삽입 함수가 매핑되는 저장 프로시저의 네임스페이스로 한정된 이름입니다. 저장 프로시저는 저장소 모델에서 선언해야 합니다.

RowsAffectedParameter

아니요

영향을 받는 행 수를 반환하는 출력 매개 변수의 이름입니다.

예제

다음 예제는 School 모델을 기반으로 하며, Person 엔터티 형식의 삽입 함수를 InsertPerson 저장 프로시저에 매핑하는 데 사용되는 InsertFunction 요소를 보여 줍니다. InsertPerson 저장 프로시저는 저장소 모델에서 선언해야 합니다.

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

AssociationSetMapping에 적용된 InsertFunction

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

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

적용 가능한 특성

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

특성 이름 필수 여부

FunctionName

삽입 함수가 매핑되는 저장 프로시저의 네임스페이스로 한정된 이름입니다. 저장 프로시저는 저장소 모델에서 선언해야 합니다.

RowsAffectedParameter

아니요

영향을 받는 행 수를 반환하는 출력 매개 변수의 이름입니다.

예제

다음 예제는 School 모델을 기반으로 하며, CourseInstructor 연결의 삽입 함수를 InsertCourseInstructor 저장 프로시저에 매핑하는 데 사용되는 InsertFunction 요소를 보여 줍니다. InsertCourseInstructor 저장 프로시저는 저장소 모델에서 선언해야 합니다.

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