다음을 통해 공유


EntityTypeMapping 요소(MSL)

MSL(매핑 사양 언어)의 EntityTypeMapping 요소는 개념적 모델 엔터티 형식과 기본 데이터베이스 테이블 또는 뷰 간의 매핑을 정의합니다. 개념적 모델 엔터티 형식과 기본 데이터베이스 테이블 또는 뷰에 대한 자세한 내용은 EntityType 요소(CSDL)EntitySet 요소(SSDL)를 참조하십시오. 매핑되는 개념적 모델 엔터티 형식은 EntityTypeMapping 요소의 TypeName 특성으로 지정됩니다. 매핑되는 테이블 또는 뷰는 자식 MappingFragment 요소StoreEntitySet 특성으로 지정됩니다.

ModificationFunctionMapping 자식 요소를 사용하여 엔터티 형식의 삽입, 업데이트 또는 삭제 함수를 데이터베이스의 저장 프로시저에 매핑할 수 있습니다.

EntityTypeMapping 요소에는 다음 자식 요소가 있을 수 있습니다.

Bb399272.note(ko-kr,VS.100).gif참고:
MappingFragmentModificationFunctionMapping 요소가 동시에 EntityTypeMapping의 자식 요소일 수는 없습니다.

Bb399272.note(ko-kr,VS.100).gif참고:
ScalarPropertyCondition 요소는 EntityTypeMapping 요소가 FunctionImportMapping 요소 내에서 사용되는 경우에만 이 요소의 자식 요소일 수 있습니다.

적용 가능한 특성

다음 표에서는 EntityTypeMapping 요소에 적용할 수 있는 특성에 대해 설명합니다.

특성 이름 필수 여부

TypeName

매핑되는 개념적 모델 엔터티 형식의 네임스페이스로 한정된 이름입니다.

해당 형식이 추상 또는 파생 형식이면 이 값은 IsOfType(Namespace-qualified_type_name)이어야 합니다.

예제

다음 예제에서는 두 개의 자식 EntityTypeMapping 요소가 있는 EntitySetMapping 요소를 보여 줍니다. 첫 번째 EntityTypeMapping 요소에서는 SchoolModel.Person 엔터티 형식이 Person 테이블에 매핑됩니다. 두 번째 EntityTypeMapping 요소에서는 SchoolModel.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>
      <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>
    </ModificationFunctionMapping>
  </EntityTypeMapping>
</EntitySetMapping>

예제

다음 예제에서는 루트 형식이 추상인 형식 계층 구조의 매핑을 보여 줍니다. TypeName 특성에는 IsOfType 구문을 사용합니다.

<EntitySetMapping Name="People">
  <EntityTypeMapping TypeName="IsTypeOf(SchoolModel.Person)">
    <MappingFragment StoreEntitySet="Person">
      <ScalarProperty Name="PersonID" ColumnName="PersonID" />
      <ScalarProperty Name="FirstName" ColumnName="FirstName" />
      <ScalarProperty Name="LastName" ColumnName="LastName" />
    </MappingFragment>
  </EntityTypeMapping>
  <EntityTypeMapping TypeName="IsTypeOf(SchoolModel.Instructor)">
    <MappingFragment StoreEntitySet="Person">
      <ScalarProperty Name="PersonID" ColumnName="PersonID" />
      <ScalarProperty Name="HireDate" ColumnName="HireDate" />
      <Condition ColumnName="HireDate" IsNull="false" />
      <Condition ColumnName="EnrollmentDate" IsNull="true" />
    </MappingFragment>
  </EntityTypeMapping>
  <EntityTypeMapping TypeName="IsTypeOf(SchoolModel.Student)">
    <MappingFragment StoreEntitySet="Person">
      <ScalarProperty Name="PersonID" ColumnName="PersonID" />
      <ScalarProperty Name="EnrollmentDate" 
                      ColumnName="EnrollmentDate" />
      <Condition ColumnName="EnrollmentDate" IsNull="false" />
      <Condition ColumnName="HireDate" IsNull="true" />
    </MappingFragment>
  </EntityTypeMapping>
</EntitySetMapping>

참고 항목

개념

CSDL 사양
SSDL 사양

기타 리소스

모델링 및 매핑(Entity Framework)