Curso Entity Framework - O Relacionamento entre Entidades - X
Nesta aula vamos tratar do relacionamento entre entidades no Entity Framework. (aula anterior) |
Podemos ter 3 tipos de relacionamentos em um Entity Data Model (EDM) :
O
Entity Data Model (EDM) ou modelo de entidades de dados pode
ser considerado o coração da Entity Framework. O EDM é um modelo entidades - relacionamentos onde:
É a partir do modelo de entidades que podemos escrever código usando as diferentes APIs, como o provedor EntityClient ou o Object Services com LINQ to Entitie |
Vamos examinar as tabelas do banco de dados EscolaDB.mdf antes de falar do relacionamento no EDM.
Abaixo temos a figura do diagrama de relacionamento das tabelas do banco de dados EscolaDB.mdf:
No diagrama de relacionamentos podemos identificar os seguintes relacionamentos:
Um-para-Um : Aluno e AlunoEndereco possuem uma relacionamento one-to-one, ou seja, Aluno possui zero ou um AlunoEndereco;
Um-para-Muitos : Padrao e Professor possuem um relacionamento one-to-many, ou seja, muitos Professores podem estar associados com um Padrao;
Muitos-para-Muitos : Aluno e Curso possuem um relacionamento many-to-many usando a tabela AlunoCurso onde AlunoCurso inclui os campos AlunoId e CursoId. Assim, um aluno pode estar vinculado a muitos cursos e um curso também pode ter muitos alunos.
Quando criamos um ADO .NET Enty Data Model a partir do banco de dados EscolaDB.mdf usando a opção EF Designer from database, serão criados as seguintes entidades e relacionamentos no EDM:
Como podemos observar :
O relacionamento Muitos-para-Muitos no EDM
Abrindo o arquivo EDM em um editor XML (Pode usar o NotePad++). Você pode ver que tem a seção do SSDL possui a EntitySet AlunoCurso, mas a seção CSDL não tem a EntitySet AlunoCurso, ela está sendo mapeada na propriedade de navegação das entidades Aluno e Curso.
Na seção MSL (CS Mapping), existe um mapeamento entre Aluno e Curso na tabela AlunoCurso em <AssociationSetMapping /> :
.....
<Association Name="FK_AlunoCurso_Curso">
<End Role="Curso" Type="Self.Curso" Multiplicity="1" />
<End Role="AlunoCurso" Type="Self.AlunoCurso" Multiplicity="*" />
<ReferentialConstraint>
<Principal Role="Curso">
<PropertyRef Name="CursoId" />
</Principal>
<Dependent Role="AlunoCurso">
<PropertyRef Name="CursoId" />
</Dependent>
</ReferentialConstraint>
</Association>
...
|
Para um exemplo prático completo veja o artigo : Entity Framework 6 - Modelando um relacionamento muitos-para-muitos
Quando uma entidade tem um relacionamento com outras entidades, então, uma hierarquia completa de objetos é chamada de um "gráfico de entidade'. Por exemplo, a seguir temo um gráfico da entidade Aluno, que inclui a hierarquia completa de objetos : Padrão, AlunoEndereco e Curso :
Na próxima aula vamos tratar das consultas projeção que selecionam dados no Entity Framework.
Disse-lhes Jesus: Em verdade, em verdade
vos digo que antes que Abraão existisse, Eu Sou.
João 8:58
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências: