MSL(매핑 사양 언어)의 InsertFunction 요소는 개념적 모델의 엔터티 형식 또는 연결에 대한 삽입 함수를 기본 데이터베이스의 저장 프로시저에 매핑합니다. 수정 함수가 매핑되는 저장 프로시저는 저장소 모델에서 선언해야 합니다. 자세한 내용은 Function 요소(SSDL)를 참조하십시오.
![]() |
---|
엔터티 형식의 세 가지 작업인 삽입, 업데이트 또는 삭제 작업을 저장 프로시저에 모두 매핑하지 않을 경우 매핑되지 않은 작업을 런타임에 실행하면 해당 작업은 실패하고 UpdateException이 throw됩니다. |
InsertFunction 요소는 ModificationFunctionMapping 요소의 자식일 수 있으며 EntityTypeMapping 요소 또는 AssociationSetMapping 요소에 적용될 수 있습니다.
EntityTypeMapping에 적용되는 InsertFunction
EntityTypeMapping 요소에 적용될 경우 InsertFunction 요소는 개념적 모델의 엔터티 형식에 대한 삽입 함수를 저장 프로시저에 매핑합니다.
InsertFunction 요소는 EntityTypeMapping 요소에 적용된 경우 다음 자식 요소를 포함할 수 있습니다.
AssociationEnd(0개 이상)
ComplexProperty(0개 이상)
ResultBinding(0개 또는 1개)
ScarlarProperty(0개 이상)
적용 가능한 특성
다음 표에서는 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>