ComplexProperty 요소(MSL)
MSL(매핑 사양 언어)의 ComplexProperty 요소는 개념적 모델 엔터티 형식의 복합 형식 속성과 기본 데이터베이스의 테이블 열 간 매핑을 정의합니다. 속성-열 매핑은 자식 ScalarProperty 요소에 지정됩니다.
ComplexType 속성 요소에는 다음 자식 요소가 있을 수 있습니다.
ScalarProperty(0개 이상)
ComplexProperty(0개 이상)
ComplextTypeMapping(0개 이상)
Condition(0개 이상)
적용 가능한 특성
다음 표에서는 ComplexProperty 요소에 적용할 수 있는 특성에 대해 설명합니다.
특성 이름 | 필수 여부 | 값 |
---|---|---|
Name |
예 |
개념적 모델에서 매핑되는 엔터티 형식의 복합 속성 이름입니다. |
TypeName |
아니요 |
개념적 모델 속성 형식의 네임스페이스로 한정된 이름입니다. |
예제
다음 예제는 School 모델을 기반으로 합니다. 다음 복합 형식이 개념적 모델에 추가되었습니다.
<ComplexType Name="FullName">
<Property Type="String" Name="LastName"
Nullable="false" MaxLength="50"
FixedLength="false" Unicode="true" />
<Property Type="String" Name="FirstName"
Nullable="false" MaxLength="50"
FixedLength="false" Unicode="true" />
</ComplexType>
Person 엔터티 형식의 LastName 및 FirstName 속성은 하나의 복합 속성 Name으로 대체되었습니다.
<EntityType Name="Person">
<Key>
<PropertyRef Name="PersonID" />
</Key>
<Property Name="PersonID" Type="Int32" Nullable="false"
annotation:StoreGeneratedPattern="Identity" />
<Property Name="HireDate" Type="DateTime" />
<Property Name="EnrollmentDate" Type="DateTime" />
<Property Name="Name" Type="SchoolModel.FullName" Nullable="false" />
</EntityType>
다음 MSL에서는 Name 속성을 기본 데이터베이스의 열에 매핑하는 데 사용되는 ComplexProperty 요소를 보여 줍니다.
<EntitySetMapping Name="People">
<EntityTypeMapping TypeName="SchoolModel.Person">
<MappingFragment StoreEntitySet="Person">
<ScalarProperty Name="PersonID" ColumnName="PersonID" />
<ScalarProperty Name="HireDate" ColumnName="HireDate" />
<ScalarProperty Name="EnrollmentDate" ColumnName="EnrollmentDate" />
<ComplexProperty Name="Name" TypeName="SchoolModel.FullName">
<ScalarProperty Name="FirstName" ColumnName="FirstName" />
<ScalarProperty Name="LastName" ColumnName="LastName" />
</ComplexProperty>
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>