Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Entity Data Model (EDM) admite la herencia para los tipos de entidad. La herencia en EDM es similar a la herencia de clases en lenguajes de programación orientados a objetos. Al igual que con las clases en lenguajes orientados a objetos, en un modelo conceptual puede definir un tipo de entidad (un tipo derivado) que herede de otro tipo de entidad (el tipo base). Sin embargo, a diferencia de las clases de programación orientada a objetos, en un modelo conceptual, el tipo derivado siempre hereda todas las propiedades y propiedades de navegación del tipo base. No se pueden invalidar las propiedades heredadas en un tipo derivado.
En un modelo conceptual, puede crear jerarquías de herencia en las que un tipo derivado hereda de otro tipo derivado. El tipo situado en la parte superior de la jerarquía (el tipo de la jerarquía que no es un tipo derivado) se denomina tipo raíz. En una jerarquía de herencia, la clave de entidad debe definirse en el tipo raíz.
No se pueden crear jerarquías de herencia en las que un tipo derivado hereda de más de un tipo. Por ejemplo, en un modelo conceptual con un Book
tipo de entidad, podría definir tipos derivados FictionBook
y NonFictionBook
que cada uno herede de Book
. Sin embargo, no se pudo definir un tipo que herede de ambos tipos FictionBook
y NonFictionBook
.
Ejemplo
En el diagrama siguiente se muestra un modelo conceptual con cuatro tipos de entidad: Book
, FictionBook
, Publisher
y Author
. El FictionBook
tipo de entidad es un tipo derivado que hereda del Book
tipo de entidad. El FictionBook
tipo hereda las ISBN (Key)
propiedades , Title
y Revision
y define una propiedad adicional denominada Genre
.
El ADO.NET Entity Framework usa un lenguaje específico del dominio (DSL) denominado lenguaje de definición de esquema conceptual (CSDL) para definir modelos conceptuales. El siguiente CSDL define un tipo de entidad, FictionBook
, que hereda del Book
tipo (como en el diagrama anterior):
<EntityType Name="FictionBook" BaseType="BooksModel.Book" >
<Property Type="String" Name="Genre" Nullable="false" />
</EntityType>