ModificationFunctionMapping 요소(MSL)
MSL(매핑 사양 언어)의 ModificationFunctionMapping 요소는 개념적 모델 엔터티 형식의 삽입, 업데이트 및 삭제 함수를 기본 데이터베이스의 저장 프로시저에 매핑합니다. 또한 ModificationFunctionMapping 요소는 개념적 모델의 다대다 연결에 대한 삽입 및 삭제 함수를 기본 데이터베이스의 저장 프로시저에 매핑할 수 있습니다. 수정 함수가 매핑되는 저장 프로시저는 저장소 모델에서 선언되어야 합니다. 자세한 내용은 Function 요소(SSDL)를 참조하십시오.
참고: |
---|
엔터티 형식의 세 가지 작업인 삽입, 업데이트 또는 삭제 작업을 모두 저장 프로시저에 매핑하지 않는 경우 런타임에서 실행될 때 매핑되지 않은 작업이 실패하고 UpdateException이 throw됩니다. |
참고: |
---|
상속 계층 구조의 한 엔터티에 대한 수정 함수가 저장 프로시저에 매핑된 경우 계층 구조의 모든 형식에 대한 수정 함수가 저장 프로시저에 매핑되어야 합니다. |
ModificationFunctionMapping 요소는 EntityTypeMapping 요소 또는 AssociationSetMapping 요소의 자식일 수 있습니다.
ModificationFunctionMapping 요소에는 다음 자식 요소가 있을 수 있습니다.
DeleteFunction(0개 또는 한 개)
InsertFunction(0개 또는 한 개)
UpdateFunction(0개 또는 한 개)
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 사양