Dela via


Entitetsdatamodell: Arv

Entitetsdatamodellen (EDM) stöder arv för entitetstyper. Arv i EDM liknar arv för klasser i objektorienterade programmeringsspråk. Precis som med klasser i objektorienterade språk kan du i en konceptmodell definiera en entitetstyp (en härledd typ) som ärver från en annan entitetstyp ( bastypen). Men till skillnad från klasser i objektorienterad programmering ärver den härledda typen i en konceptmodell alltid alla egenskaper och navigeringsegenskaper för bastypen. Du kan inte åsidosätta ärvda egenskaper i en härledd typ.

I en konceptmodell kan du skapa arvshierarkier där en härledd typ ärver från en annan härledd typ. Typen längst upp i hierarkin (den enda typen i hierarkin som inte är en härledd typ) kallas rottypen. I en arvshierarki måste entitetsnyckeln definieras för rottypen.

Du kan inte skapa arvshierarkier där en härledd typ ärver från mer än en typ. I en konceptmodell med en entitetstyp Book kan du till exempel definiera härledda typer FictionBook och som var och NonFictionBook en ärver från Book. Du kunde dock inte definiera en typ som ärver från både typerna FictionBook och NonFictionBook .

Exempel

Följande diagram visar en konceptmodell med fyra entitetstyper: Book, FictionBook, Publisheroch Author. Entitetstypen FictionBook är en härledd typ som ärver från entitetstypen Book . Typen FictionBook ärver ISBN (Key)egenskaperna , Titleoch Revision och definierar en ytterligare egenskap med namnet Genre.

Diagram that shows a conceptual model with four entity types.

ADO.NET Entity Framework använder ett domänspecifikt språk (DSL) som kallas CSDL (Conceptual Schema Definition Language) för att definiera konceptuella modeller. Följande CSDL definierar en entitetstyp, FictionBook, som ärver från Book typen (som i diagrammet ovan):

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

Se även