ComplexProperty 요소(MSL)

MSL(매핑 사양 언어)의 ComplexProperty 요소는 개념적 모델 엔터티 형식의 복합 형식 속성과 기본 데이터베이스의 테이블 열 간 매핑을 정의합니다. 속성-열 매핑은 자식 ScalarProperty 요소에 지정됩니다.

ComplexType 속성 요소에는 다음 자식 요소가 있을 수 있습니다.

적용 가능한 특성

다음 표에서는 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 엔터티 형식의 LastNameFirstName 속성은 하나의 복합 속성 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>

참고 항목

기타 리소스

CSDL, SSDL 및 MSL 사양
모델링 및 매핑(Entity Framework)