Condition 요소(MSL)

MSL(매핑 사양 언어)의 Condition 요소는 개념적 모델과 기본 데이터베이스 간의 매핑에 대한 조건을 적용합니다. XML 노드 내에 정의된 매핑은 자식 Condition 요소에 지정된 모든 조건이 충족되는 경우에 유효합니다. 그렇지 않으면 매핑이 유효하지 않습니다. 예를 들어 MappingFragment 요소에 하나 이상의 Condition 자식 요소가 포함된 경우 MappingFragment 노드 내에 정의된 매핑은 자식 Condition 요소의 모든 조건이 충족되는 경우에만 유효합니다.

각 조건은 Name(Name 특성으로 지정된 개념적 모델 엔터티 속성의 이름) 또는 ColumnName(ColumnName 특성으로 지정된 데이터베이스의 열 이름)에 적용될 수 있습니다. Name 특성이 설정되어 있으면 엔터티 속성 값에 대해 조건이 확인됩니다. ColumnName 특성이 설정되어 있으면 열 값에 대해 조건이 확인됩니다. Condition 요소에서 Name 또는 ColumnName 특성 중 하나만 지정할 수 있습니다.

Cc716732.note(ko-kr,VS.100).gif참고:
FunctionImportMapping 요소 내에서 Condition 요소를 사용할 때는 Name 특성만 적용할 수 있습니다.

Condition 요소는 다음 요소의 자식일 수 있습니다.

Condition 요소에는 자식 요소가 있을 수 없습니다.

적용 가능한 특성

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

특성 이름 필수 여부

ColumnName

아니요

조건을 확인하는 데 사용되는 값이 있는 테이블 열의 이름입니다.

IsNull

아니요

True 또는 False입니다. 값이 True이고 열 값이 null이거나, 값이 False이고 열 값이 null이 아니면 조건이 true입니다. 그렇지 않으면 조건이 false입니다.

IsNull 특성과 Value 특성은 동시에 사용할 수 없습니다.

Value

아니요

열 값과 비교할 값입니다. 값이 동일하면 조건이 true입니다. 그렇지 않으면 조건이 false입니다.

IsNull 특성과 Value 특성은 동시에 사용할 수 없습니다.

Name

아니요

조건을 확인하는 데 사용되는 값이 있는 개념적 모델 엔터티 속성의 이름입니다.

FunctionImportMapping 요소 내에서 Condition 요소를 사용할 경우에는 이 특성을 적용할 수 없습니다.

예제

다음 예제에서는 MappingFragment 요소의 자식인 Condition 요소를 보여 줍니다. HireDate가 null이 아니고 EnrollmentDate가 null이면 Person 테이블의 PersonIDHireDate 열과 SchoolModel.Instructor 형식 간에 데이터가 매핑됩니다. EnrollmentDate가 null이 아니고 HireDate가 null이면 Person 테이블의 PersonIDEnrollment 열과 SchoolModel.Student 형식 간에 데이터가 매핑됩니다.

<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 및 MSL 사양
모델링 및 매핑(Entity Framework)