Delen via


Entiteitsgegevensmodel: overname

Het EDM (Entity Data Model) ondersteunt overname voor entiteitstypen. Overname in de EDM is vergelijkbaar met overname voor klassen in objectgeoriënteerde programmeertalen. Net als bij klassen in objectgeoriënteerde talen kunt u in een conceptueel model een entiteitstype (een afgeleid type) definiëren dat overgaat van een ander entiteitstype (het basistype). In tegenstelling tot klassen in objectgeoriënteerde programmering, neemt het afgeleide type in een conceptueel model echter altijd alle eigenschappen en navigatie-eigenschappen van het basistype over. U kunt overgenomen eigenschappen in een afgeleid type niet overschrijven.

In een conceptueel model kunt u overnamehiërarchieën bouwen waarin een afgeleid type wordt overgenomen van een ander afgeleid type. Het type boven aan de hiërarchie (het ene type in de hiërarchie dat geen afgeleid type is) wordt het hoofdtype genoemd. In een overnamehiërarchie moet de entiteitssleutel worden gedefinieerd voor het hoofdtype.

U kunt geen overnamehiërarchieën bouwen waarin een afgeleid type wordt overgenomen van meer dan één type. In een conceptueel model met een Book entiteitstype kunt u bijvoorbeeld afgeleide typen FictionBook definiëren en NonFictionBook allemaal overnemen van Book. U kunt echter geen type definiëren dat wordt overgenomen van zowel de als NonFictionBook de FictionBook typen.

Opmerking

In het volgende diagram ziet u een conceptueel model met vier entiteitstypen: Book, FictionBook, Publisheren Author. Het FictionBook entiteitstype is een afgeleid type dat wordt overgenomen van het Book entiteitstype. Het FictionBook type neemt de , Titleen eigenschappen over Revision en definieert een extra eigenschap met de ISBN (Key)naam Genre.

Diagram that shows a conceptual model with four entity types.

De ADO.NET Entity Framework maakt gebruik van een domeinspecifieke taal (DSL) genaamd conceptuele schemadefinitietaal (CSDL) om conceptuele modellen te definiëren. De volgende CSDL definieert een entiteitstype, FictionBookdat overgaat van het Book type (zoals in het bovenstaande diagram):

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

Zie ook