ScalarProperty 요소(MSL)
MSL(매핑 사양 언어)의 ScalarProperty 요소는 개념적 모델의 엔터티 형식, 복합 형식 또는 연결의 속성을 기본 데이터베이스의 테이블 열 또는 저장 프로시저에 매핑합니다.
참고: |
---|
수정 함수가 매핑되는 저장 프로시저는 저장소 모델에서 선언해야 합니다.자세한 내용은 Function 요소(SSDL)를 참조하십시오. |
ScalarProperty 요소는 다음 요소의 자식일 수 있습니다.
MappingFragment, ComplexProperty 또는 EndProperty 요소의 자식인 ScalarProperty 요소는 개념적 모델의 속성을 데이터베이스의 열에 매핑합니다. InsertFunction, UpdateFunction 또는 DeleteFunction 요소의 자식인 ScalarProperty 요소는 개념적 모델의 속성을 저장 프로시저 매개 변수에 매핑합니다.
ScalarProperty 요소에는 자식 요소가 있을 수 없습니다.
적용 가능한 특성
ScalarProperty 요소에 적용되는 특성은 해당 요소의 역할에 따라 달라집니다.
다음 표에서는 ScalarProperty 요소가 개념적 모델 속성을 데이터베이스의 열에 매핑하는 데 사용될 경우 적용할 수 있는 특성을 설명합니다.
특성 이름 | 필수 여부 | 값 |
---|---|---|
Name |
예 |
매핑되는 개념적 모델 속성의 이름입니다. |
ColumnName |
예 |
매핑되는 테이블 열의 이름입니다. |
다음 표에서는 ScalarProperty 요소가 개념적 모델 속성을 저장 프로시저 매개 변수에 매핑하는 데 사용될 경우 적용할 수 있는 특성을 설명합니다.
특성 이름 | 필수 여부 | 값 |
---|---|---|
Name |
예 |
매핑되는 개념적 모델 속성의 이름입니다. |
ParameterName |
예 |
매핑되는 매개 변수의 이름입니다. |
Version |
아니요 |
동시성 검사에 속성의 현재 값을 사용해야 하는지 원래 값을 사용해야 하는지에 따라 Current 또는 Original입니다. |
예제
다음 예제에서는 다음 두 가지 방법으로 사용되는 ScalarProperty 요소를 보여 줍니다.
Person 엔터티 형식의 속성을 Person 테이블에 매핑
Person 엔터티 형식의 속성을 UpdatePerson 저장 프로시저의 매개 변수에 매핑 저장 프로시저는 저장소 모델에서 선언해야 합니다.
<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>
예제
다음 예제에서는 개념적 모델 연결의 삽입 및 삭제 함수를 데이터베이스의 저장 프로시저에 매핑하는 데 사용되는 ScalarProperty 요소를 보여 줍니다. 저장 프로시저는 저장소 모델에서 선언해야 합니다.
<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>