Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Model danych jednostki (EDM) obsługuje dziedziczenie typów jednostek. Dziedziczenie w programie EDM jest podobne do dziedziczenia klas w językach programowania zorientowanych na obiekty. Podobnie jak w przypadku klas w językach obiektowych, w modelu koncepcyjnym można zdefiniować typ jednostki ( typ pochodny), który dziedziczy z innego typu jednostki ( typu podstawowego). Jednak w przeciwieństwie do klas w programowaniu obiektowym w modelu koncepcyjnym typ pochodny zawsze dziedziczy wszystkie właściwości i właściwości nawigacji typu podstawowego. Nie można przesłaniać właściwości dziedziczonych w typie pochodnym.
W modelu koncepcyjnym można tworzyć hierarchie dziedziczenia, w których typ pochodny dziedziczy z innego typu pochodnego. Typ w górnej części hierarchii (jeden typ w hierarchii, który nie jest typem pochodnym) jest nazywany typem głównym. W hierarchii dziedziczenia klucz jednostki musi być zdefiniowany w typie głównym.
Nie można tworzyć hierarchii dziedziczenia, w których typ pochodny dziedziczy z więcej niż jednego typu. Na przykład w modelu koncepcyjnym z typem Book
jednostki, można zdefiniować typy pochodne FictionBook
i NonFictionBook
, z których każdy dziedziczy z klasy Book
. Nie można jednak wtedy zdefiniować typu, który dziedziczy zarówno z typów: FictionBook
i NonFictionBook
.
Przykład
Na poniższym diagramie przedstawiono model koncepcyjny z czterema typami jednostek: Book
, , FictionBook
Publisher
i Author
. Typ FictionBook
jednostki jest typem pochodnym dziedziczącym z Book
typu jednostki. Typ FictionBook
dziedziczy właściwości ISBN (Key)
, Title
i Revision
oraz definiuje dodatkową właściwość o nazwie Genre
.
ADO.NET Entity Framework używa języka specyficznego dla domeny (DSL) nazywanego koncepcyjnym językiem definicji schematu (CSDL) do definiowania modeli koncepcyjnych. Poniższy plik CSDL definiuje typ jednostki , FictionBook
który dziedziczy z Book
typu (jak na powyższym diagramie):
<EntityType Name="FictionBook" BaseType="BooksModel.Book" >
<Property Type="String" Name="Genre" Nullable="false" />
</EntityType>