Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O Modelo de Dados de Entidade (EDM) suporta herança para tipos de entidade. A herança no EDM é semelhante à herança para classes em linguagens de programação orientadas a objetos. Como nas classes em linguagens orientadas a objetos, em um modelo conceitual você pode definir um tipo de entidade (um tipo derivado) que herda de outro tipo de entidade (o tipo base). No entanto, ao contrário das classes na programação orientada a objetos, em um modelo conceitual o tipo derivado sempre herda todas as propriedades e propriedades de navegação do tipo base. Não é possível substituir propriedades herdadas em um tipo derivado.
Em um modelo conceitual, você pode criar hierarquias de herança nas quais um tipo derivado herda de outro tipo derivado. O tipo na parte superior da hierarquia (o único tipo na hierarquia que não é um tipo derivado) é chamado de tipo raiz. Em uma hierarquia de herança, a chave de entidade deve ser definida no tipo raiz.
Não é possível criar hierarquias de herança nas quais um tipo derivado herda de mais de um tipo. Por exemplo, em um modelo conceitual com um Book tipo de entidade, você pode definir tipos FictionBook derivados e NonFictionBook que cada um herda do Book. No entanto, então não foi possível definir um tipo que herda de ambos os tipos FictionBook e NonFictionBook.
Exemplo
O diagrama a seguir mostra um modelo conceitual com quatro tipos de entidade: Book, FictionBook, Publishere Author. O FictionBook tipo de entidade é um tipo derivado, herdado do Book tipo de entidade. O FictionBook tipo herda as ISBN (Key)propriedades , Title, e Revision e define uma propriedade adicional chamada Genre.
O ADO.NET Entity Framework usa uma linguagem específica de domínio (DSL) chamada linguagem de definição de esquema conceitual (CSDL) para definir modelos conceituais. A CSDL a seguir define um tipo de entidade, FictionBook, que herda do tipo Book (como no diagrama acima):
<EntityType Name="FictionBook" BaseType="BooksModel.Book" >
<Property Type="String" Name="Genre" Nullable="false" />
</EntityType>