Varlık Veri Modeli: Devralma
Varlık Veri Modeli (EDM), varlık türleri için devralmayı destekler. EDM'deki devralma, nesne odaklı programlama dillerindeki sınıflar için devralmaya benzer. Nesne odaklı dillerdeki sınıflarda olduğu gibi kavramsal modelde de başka bir varlık türünden (temel tür) devralan bir varlık türü (türetilmiş tür) tanımlayabilirsiniz. Ancak, nesne odaklı programlamadaki sınıflardan farklı olarak, kavramsal modelde türetilen tür her zaman temel türün tüm özelliklerini ve gezinti özelliklerini devralır. Türetilmiş bir türdeki devralınan özellikleri geçersiz kılamazsınız.
Kavramsal modelde, türetilmiş bir türün başka bir türe ait devralındığı devralma hiyerarşileri oluşturabilirsiniz. Hiyerarşinin en üstündeki tür (hiyerarşide türetilmiş tür olmayan bir tür) kök tür olarak adlandırılır. Devralma hiyerarşisinde , varlık anahtarı kök türünde tanımlanmalıdır.
Türetilmiş bir türün birden fazla türden devraldığı devralma hiyerarşileri oluşturamazsınız. Örneğin, varlık türüne sahip bir Book
kavramsal modelde türetilmiş türler FictionBook
tanımlayabilir ve NonFictionBook
her birinin öğesinden Book
devraldığı türleri tanımlayabilirsiniz. Ancak, hem hem NonFictionBook
de FictionBook
türlerinden devralan bir tür tanımlayamadınız.
Örnek
Aşağıdaki diyagramda, dört varlık türüne sahip kavramsal bir model gösterilmektedir: Book
, FictionBook
, Publisher
ve Author
. Varlık FictionBook
türü, varlık türünden devralınan Book
türetilmiş bir türdür. türü FictionBook
, Title
ve özelliklerini devralır ISBN (Key)
ve Revision
adlı Genre
ek bir özellik tanımlar.
ADO.NET Entity Framework, kavramsal modelleri tanımlamak için kavramsal şema tanım dili (CSDL) olarak adlandırılan etki alanına özgü bir dil (DSL) kullanır. Aşağıdaki CSDL, FictionBook
türünden Book
devralan bir varlık türünü tanımlar (yukarıdaki diyagramda olduğu gibi):
<EntityType Name="FictionBook" BaseType="BooksModel.Book" >
<Property Type="String" Name="Genre" Nullable="false" />
</EntityType>