다음을 통해 공유


Condition 요소(AssociationSetMapping)

AssociationSetMappingCondition 요소는 EDM(엔터티 데이터 모델)에서 매핑할 Association의 유효성에 대한 논리적 요구 사항을 지정합니다. 연결을 매핑하면 관련 엔터티의 속성에 해당하는 데이터 테이블의 열이 식별됩니다.

다음 AssociationSetMapping 요소는 AdventureWorks 데이터베이스의 HumanResources 세그먼트에서 CSDL(개념 스키마 정의 언어)로 정의된 Employee_Employee_ManagerID 연결을 매핑합니다. 다음 매핑 사양에 따라 Employee 엔터티는 관리자로 지정된 다른 Employee 엔터티와 관련됩니다.

<?xml version="1.0" encoding="utf-8"?>
<Mapping Space="C-S" 
    xmlns:edm="urn:schemas-microsoft-com:windows:storage:mapping:CS" 
    xmlns="urn:schemas-microsoft-com:windows:storage:mapping:CS">
  <EntityContainerMapping CdmEntityContainer="HumanResources"
                           StorageEntityContainer="HumanResources">

    <AssociationSetMapping Name="Employee_Employee_ManagerID"
       TypeName="AdventureWorksHRModel.Employee_Employee_ManagerID"
           StoreEntitySet="Employee">
      <EndProperty Name="Employee">
        <ScalarProperty Name="EmployeeID"
                                     ColumnName="ManagerID" />
      </EndProperty>
      <EndProperty Name="EmployeeManager">
        <ScalarProperty Name="EmployeeID"
                               ColumnName="EmployeeID" />
      </EndProperty>
      <Condition ColumnName="ManagerID" IsNull="false" />
    </AssociationSetMapping>

  </EntityContainerMapping>

Association에 의해 관련된 두 엔터티는 모두 Employee 엔터티입니다. 매핑은 AssociationSetMappng의 마지막 줄에서 지정된 Condition에 따라 결정됩니다. Association이 유효하려면 Employee 엔터티를 관리자로 지정된 다른 Employee 엔터티와 연결해야 합니다. 이 연결을 나타내는 저장소 구조는 Employee 테이블의 ManagerID 열에 있는 외래 키 제약 조건입니다. 이 조건이 null인 경우, 조건이 충족되지 않으며 따라서 Association의 인스턴스에서 추가 세부 사항을 할당하는 것은 무의미합니다. ManagerID 값이 null일 때 이 형식의 Association을 코드로 만들면 SaveChanges 메서드를 호출할 때 Association에서 예외가 throw됩니다.

참고 항목

개념

EntityContainerMapping 요소(MSL)
Association 요소(CSDL)
AssociationSet 요소(EntityContainer CSDL)
Association 요소(SSDL)
AssociationSet 요소(EntityContainer SSDL)
AdventureWorks 전체 모델(EDM)