Megosztás a következőn keresztül:


Entitásadat-modell: Öröklés

Az entitásadat-modell (EDM) támogatja az entitástípusok öröklését. Az EDM öröklése hasonló az objektumorientált programozási nyelvek osztályainak örökléséhez. Az objektumorientált nyelvek osztályaihoz hasonlóan egy elméleti modellben is definiálhat egy entitástípust (származtatott típust), amely egy másik entitástípustól (az alaptípustól) öröklődik. Az objektumorientált programozás osztályaitól eltérően azonban egy elméleti modellben a származtatott típus mindig örökli az alaptípus összes tulajdonságát és navigációs tulajdonságát . Származtatott típusban nem bírálhatja felül az örökölt tulajdonságokat.

Egy elméleti modellben olyan öröklési hierarchiákat hozhat létre, amelyekben egy származtatott típus egy másik származtatott típustól öröklődik. A hierarchia tetején lévő típust (a hierarchia egy olyan típusát, amely nem származtatott típus) gyökértípusnak nevezzük. Öröklési hierarchiában az entitáskulcsot a gyökértípuson kell meghatározni.

Nem hozhat létre olyan öröklési hierarchiákat, amelyekben egy származtatott típus egynél több típustól örököl. Például egy entitástípussal rendelkező Book fogalmi modellben definiálhat származtatott típusokat FictionBook , és NonFictionBook amelyektől Bookmindegyik öröklődik. Nem definiálhat azonban olyan típust, amely örökli mind a típusokat, mind a FictionBook NonFictionBook típusokat.

Példa

Az alábbi ábrán egy négy entitástípussal rendelkező fogalmi modell látható: Book, FictionBook, Publisherés Author. Az FictionBook entitástípus egy származtatott típus, amely az Book entitástípustól öröklődik. A FictionBook típus örökli a ISBN (Key), Titleés Revision a tulajdonságokat, és definiál egy további, úgynevezett tulajdonságot Genre.

Diagram that shows a conceptual model with four entity types.

A ADO.NET Entity Framework egy tartományspecifikus nyelvet (DSL) használ, amelyet fogalmi sémadefiníciós nyelvnek (CSDL) hívunk a fogalmi modellek meghatározásához. A következő CSDL egy olyan entitástípust határoz meg, FictionBookamely a Book típustól öröklődik (a fenti ábrához hasonlóan):

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

Lásd még