참조 제약 조건(Entity Framework)
EDM(엔터티 데이터 모델)에서는 SalesOrderHeader와 SalesOrderDetail 개체처럼 관련된 개체 사이에 참조 제약 조건이 있을 수 있습니다. 이 제약 조건은 CSDL(개념 스키마 정의 언어) 파일에 지정됩니다. 자세한 내용은 ReferentialConstraint 요소(EntityContainer CSDL)를 참조하십시오.
참고 |
---|
개체 서비스는 EDM에서 표현할 수 있는 제약 조건 중 일부를 적용하지 않습니다. 예를 들어 개체 서비스는 관계에 카디널리티 제약 조건을 적용하지 않으며, 이로 인해 관련 개체의 변경 내용을 데이터 소스에 저장할 때 일관성 없는 결과가 발생할 수 있습니다. 데이터 소스에서 중요한 모델 제약 조건을 모두 적용하는지 확인합니다. |
제약 조건 관계에 있는 개체를 사용하여 작업할 때 다음 사항에 유의하십시오.
종속(자식) 개체는 부모 개체와의 관계가 정의되어 있지 않은 상태에서 존재할 수 없습니다.
새 자식 개체를 만들 때는 SaveChanges 호출 이전에 먼저 부모 개체가 개체 컨텍스트나 데이터 소스에 존재해야 합니다. 그렇지 않으면 InvalidOperationException이 발생합니다.
부모 개체의 EntityCollection에 자식 개체를 추가하려면 Add 메서드를 사용합니다. 자식 개체의 컬렉션은 해당 관계에 대해 정의된 탐색 속성에서 액세스할 수 있습니다. 또는 부모 개체의 RelationshipManager 속성에 대한 GetRelatedEnd 또는 GetRelatedCollection 메서드에서 액세스할 수도 있습니다.
부모 개체를 삭제하면 제약 조건 관계의 자식 개체도 모두 삭제됩니다. 이 결과는 해당 관계에 대한 연결에 CascadeDelete 속성을 사용하는 것과 동일합니다.
관계를 제거하면 하위 개체가 삭제됩니다. 즉 EntityCollection에 대해 Remove를 호출하면 관계와 자식 개체가 모두 삭제되도록 표시됩니다.
만들어진 관계는 다음 프로세스를 통해서만 변경할 수 있습니다.
기존 관계를 삭제합니다.
SaveChanges를 호출합니다.
영구 자식 개체를 새 부모 개체의 EntityCollection에 추가합니다.