Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le modèle de données d’entité (EDM) prend en charge l’héritage pour les types d’entités. L’héritage dans l’EDM est similaire à l’héritage pour les classes dans les langages de programmation orienté objet. Comme avec les classes dans les langages orientés objet, dans un modèle conceptuel, vous pouvez définir un type d’entité (un type dérivé) qui hérite d’un autre type d’entité (le type de base). Toutefois, contrairement aux classes de programmation orientée objet, dans un modèle conceptuel, le type dérivé hérite toujours de toutes les propriétés et propriétés de navigation du type de base. Vous ne pouvez pas remplacer les propriétés héritées dans un type dérivé.
Dans un modèle conceptuel, vous pouvez créer des hiérarchies d’héritage dans lesquelles un type dérivé hérite d’un autre type dérivé. Le type situé en haut de la hiérarchie (le type dans la hiérarchie qui n’est pas un type dérivé) est appelé type racine. Dans une hiérarchie d’héritage, la clé d’entité doit être définie sur le type racine.
Vous ne pouvez pas générer de hiérarchies d’héritage dans lesquelles un type dérivé hérite de plusieurs types. Par exemple, dans un modèle conceptuel avec un type d’entité Book
, vous pouvez définir des types FictionBook
dérivés et NonFictionBook
que chacun hérite de Book
. Toutefois, vous ne pouviez pas alors définir un type qui hérite à la fois des types FictionBook
et NonFictionBook
.
Exemple :
Le diagramme suivant montre un modèle conceptuel avec quatre types d’entités : Book
, , FictionBook
Publisher
, et Author
. Le FictionBook
type d’entité est un type dérivé, hérite du type d’entité Book
. Le FictionBook
type hérite des ISBN (Key)
propriétés , Title
et Revision
définit une propriété supplémentaire appelée Genre
.
Le ADO.NET Entity Framework utilise un langage spécifique au domaine (DSL) appelé langage de définition de schéma conceptuel (CSDL) pour définir des modèles conceptuels. Le langage CSDL suivant définit un type d’entité, FictionBook
qui hérite du Book
type (comme dans le diagramme ci-dessus) :
<EntityType Name="FictionBook" BaseType="BooksModel.Book" >
<Property Type="String" Name="Genre" Nullable="false" />
</EntityType>