다음을 통해 공유


참조 제약 조건(Entity Framework)

EDM(엔터티 데이터 모델)에서는 SalesOrderHeaderSalesOrderDetail 개체처럼 관련된 개체 사이에 참조 제약 조건이 있을 수 있습니다. 이 제약 조건은 CSDL(개념 스키마 정의 언어) 파일에 지정됩니다. 자세한 내용은 ReferentialConstraint 요소(EntityContainer CSDL)를 참조하십시오.

Note참고

개체 서비스는 EDM에서 표현할 수 있는 제약 조건 중 일부를 적용하지 않습니다. 예를 들어 개체 서비스는 관계에 카디널리티 제약 조건을 적용하지 않으며, 이로 인해 관련 개체의 변경 내용을 데이터 소스에 저장할 때 일관성 없는 결과가 발생할 수 있습니다. 데이터 소스에서 중요한 모델 제약 조건을 모두 적용하는지 확인합니다.

제약 조건 관계에 있는 개체를 사용하여 작업할 때 다음 사항에 유의하십시오.

  • 종속(자식) 개체는 부모 개체와의 관계가 정의되어 있지 않은 상태에서 존재할 수 없습니다.

  • 새 자식 개체를 만들 때는 SaveChanges 호출 이전에 먼저 부모 개체가 개체 컨텍스트나 데이터 소스에 존재해야 합니다. 그렇지 않으면 InvalidOperationException이 발생합니다.

  • 부모 개체의 EntityCollection에 자식 개체를 추가하려면 Add 메서드를 사용합니다. 자식 개체의 컬렉션은 해당 관계에 대해 정의된 탐색 속성에서 액세스할 수 있습니다. 또는 부모 개체의 RelationshipManager 속성에 대한 GetRelatedEnd 또는 GetRelatedCollection 메서드에서 액세스할 수도 있습니다.

  • 부모 개체를 삭제하면 제약 조건 관계의 자식 개체도 모두 삭제됩니다. 이 결과는 해당 관계에 대한 연결에 CascadeDelete 속성을 사용하는 것과 동일합니다.

  • 관계를 제거하면 하위 개체가 삭제됩니다. 즉 EntityCollection에 대해 Remove를 호출하면 관계와 자식 개체가 모두 삭제되도록 표시됩니다.

  • 만들어진 관계는 다음 프로세스를 통해서만 변경할 수 있습니다.

    1. 기존 관계를 삭제합니다.

    2. SaveChanges를 호출합니다.

    3. 영구 자식 개체를 새 부모 개체의 EntityCollection에 추가합니다.

참고 항목

기타 리소스

개체 사용(Entity Framework)