Model Data Entitas: Pewarisan
Model Data Entitas (EDM) mendukung pewarisan untuk jenis entitas. Pewarisan dalam EDM mirip dengan pewarisan untuk kelas dalam bahasa pemrograman berorientasi objek. Seperti halnya kelas dalam bahasa berorientasi objek, dalam model konseptual Anda dapat mendefinisikan jenis entitas (jenis turunan) yang diturunkan dari jenis entitas lain (jenis dasar). Namun, tidak seperti kelas dalam pemrograman berorientasi objek, dalam model konseptual jenis turunan selalu mewarisi semua properti dan properti navigasi dari jenis dasar. Anda tidak dapat mengganti properti yang diwarisi dalam jenis turunan.
Dalam model konseptual Anda dapat membangun hierarki pewarisan dengan tipe turunan mewarisi dari tipe turunan lainnya. Jenis di bagian atas hierarki (satu jenis dalam hierarki yang bukan merupakan jenis turunan) disebut jenis akar. Dalam hierarki pewarisan, kunci entitas harus ditentukan pada jenis akar.
Anda tidak dapat membangun hierarki pewarisan dengan tipe turunan mewarisi lebih dari satu tipe. Misalnya, dalam model konseptual dengan tipe entitas Book
, Anda dapat menentukan tipe turunan FictionBook
dan NonFictionBook
yang masing-masing diwarisi dari Book
. Namun, Anda tidak dapat menentukan jenis yang diturunkan dari jenis FictionBook
dan NonFictionBook
.
Contoh
Diagram berikut menunjukkan model konseptual dengan empat jenis entitas: Book
, FictionBook
, Publisher
, dan Author
. Jenis entitas FictionBook
adalah jenis turunan, mewarisi jenis entitas Book
. Jenis FictionBook
mewarisi properti ISBN (Key)
, Title
, dan Revision
, dan mendefinisikan properti tambahan yang disebut Genre
.
ADO.NET Entity Framework menggunakan bahasa khusus domain (DSL) yang disebut bahasa definisi skema konseptual (CSDL) untuk mendefinisikan model konseptual. CSDL berikut mendefinisikan tipe entitas, FictionBook
, yang mewarisi tipe Book
(seperti dalam diagram di atas):
<EntityType Name="FictionBook" BaseType="BooksModel.Book" >
<Property Type="String" Name="Genre" Nullable="false" />
</EntityType>