다음을 통해 공유


엔터티 데이터 모델: 상속

EDM(엔터티 데이터 모델)은 엔터티 형식에 대한 상속을 지원합니다. EDM의 상속은 개체 지향 프로그래밍 언어의 클래스에 대한 상속과 유사합니다. 개체 지향 언어의 클래스와 마찬가지로 개념적 모델에서 다른 엔터티 형식(기본 형식)에서 상속되는 엔터티 형식( 파생형식)을 정의할 수 있습니다. 그러나 개체 지향 프로그래밍의 클래스와 달리 개념적 모델에서 파생 형식은 항상 기본 형식의 모든 속성탐색 속성을 상속합니다. 파생 형식의 상속된 속성은 재정의할 수 없습니다.

개념적 모델에서는 파생된 형식이 다른 파생 형식에서 상속되는 상속 계층 구조를 빌드할 수 있습니다. 계층 구조의 맨 위에 있는 형식(파생 형식이 아닌 계층의 한 형식)을 루트 형식이라고 합니다. 상속 계층 구조에서 엔터티 키 는 루트 형식에 정의되어야 합니다.

파생 형식이 둘 이상의 형식에서 상속되는 상속 계층 구조는 빌드할 수 없습니다. 예를 들어, Book 엔터티 형식을 갖춘 개념적 모델에서는 FictionBook에서 각각 상속받는 파생 형식 NonFictionBookBook를 정의할 수 있습니다. 그러나 FictionBook 형식과 NonFictionBook 형식 둘 다에서 상속되는 형식을 정의할 수는 없습니다.

예시

다음 다이어그램은 네 가지 Book엔터티 형식인 , FictionBook, PublisherAuthor4개의 개념적 모델을 보여줍니다. FictionBook 엔터티 형식은 Book 엔터티 형식을 상속받은 파생 형식입니다. 형식은 FictionBook, ISBN (Key), Title, 그리고 Revision 속성을 상속하며, Genre이라는 추가 속성을 정의합니다.

네 가지 엔터티 형식의 개념적 모델을 보여 주는 다이어그램.

ADO.NET Entity FrameworkCSDL(개념 스키마 정의 언어)이라는 DSL(도메인별 언어)을 사용하여 개념 모델을 정의합니다. 다음 CSDL은 위의 다이어그램에 나타난 것처럼 FictionBook 형식에서 상속되는 엔터티 형식 Book를 정의합니다.

<EntityType Name="FictionBook" BaseType="BooksModel.Book" >
  <Property Type="String" Name="Genre" Nullable="false" />
</EntityType>

참고하십시오