Curso Entity Framework - Criando o modelo de entidades - III
Nesta aula vamos criar o modelo de entidades via Entity Data Model (EDM) para o banco de dados EscolaDB.mdf definido na aula anterior e compreender alguns de seus principais recursos. |
Abra o Visual Studio 2013 Express for Windows desktop e clique em New Project;
Selecione o template Visual Basic -> Console Application e informe o nome EF6_CursoBasico e clique no botão OK;
A seguir clique no menu PROJECT -> Add New Item;
Selecione guia Data e selecione o template ADO.NET Entity Data Model;
Informe o nome Escola e clique no botão Add;
No assistente Entity Data model Wizard selecione a opção : Generate from database e clique em Next>;
Na janela - Choose Your Data Connection - clique na guia New Connection;
Na janela - Add Connection - selecione o Data Source Microsoft SQL Server (SqlClient) e informe o nome do servidor : (LocalDB)\v11.0 e selecione o banco de dados EscolaDB;
Clique no botão Test Connection para verificar se a conexão esta ok e em caso positivo clique no botão OK;
Ao final a janela - Choose Your Data Connection - deverá apresentar os seguintes valores:
Você pode escolher entre suas conexões de banco de dados existentes ou criar nova conexão clicando no botão "New Connection". Vou usar a conexão existente com o banco de dados EscolaDB. Isso também irá adicionar a string de conexão no arquivo app.config com o sufixo padrão com o nome do banco de dados: EscolaDBEntities
A opção para
Pluralizar ou singularizar os nomes dos
objetos coloca no singular o nome do entityset se o nome da tabela no banco
de dados estiver no plural. Se no banco EscolaDB existir uma tabela com o
nome Alunos o EntitySet ficaria no singular Aluno. Da mesma
forma as relações entre o modelo serão pluralizados se a tabela tem relação
um-para-muitos ou muitos-para-muitos com outra tabela. Por exemplo, a tabela
Aluno tem um relacionamento muitos-para-muitos com a tabela de Curso assim o
entity set Aluno terá a propriedade Cursos para a coleção de cursos. Na opção Include foreign keys in the model inclui a propriedade da chave estrangeira explicitamente para representar a chave estrangeira. Por exemplo, a tabela Aluno tem uma relação um-para-muitos com a tabela Padrao. Assim, cada aluno está associado a apenas um Padrao. Para representar isso no modelo, o EntitySet Aluno inclui a propriedade PadraoId com propriedade de navegação padrão. Se esta opção estiver desmarcada, o EF só vai incluir a propriedade padrão, mas não vai incluir a propriedade PadraoId no EntitySet Aluno. A opção Import selected procedures and functions into the entity model automaticamente cria Importações de função para as funções e procedimentos armazenados. Você não precisa importá-los manualmente como em versões anteriores do EF. |
Vamos continuar clicando no botão Next> ;
Na próxima janela do assistente marque a opção Entity Framework 6 e clique no botão Next>;
|
A seguir selecione todas as tabelas, views e stored procedures do banco de dados e marque as opções conforme a figura abaixo:
Esta etapa irá exibir todas as tabelas, views e procedimentos armazenados do banco de dados. Selecione tabelas, views e as stored procedures que você desejar, mantenha as caixas padrão selecionadas e clique em Finish. Você pode alterar namespace EscolaModel, se desejar.
Após clicar no botão Finish será gerado modelo de entidades e exibido no Descritor do Entity Data Model: (Você pode abrir o descritor clicando duas vezes sobre o arquivo Escola.edmx)
Na figura vemos as entidades e as associações entre as entidades com suas multiplicidades representadas. Assim temos:
Mapeamento Entidade-Tabela (Entity - Table Mapping)
Cada entidade no EDM esta mapeada com uma tabela do banco de dados.
Você pode verificar o mapeamento entidade-tabela clicando com o botão direito sobre qualquer entidade e selecionar a opção Table Mapping;
Se você alterar qualquer nome de propriedade da entidade no descritor o mapeamento irá refletir isso imediatamente:
Context & Entity Classes:
Cada Entity Data Model gera um classe Context e múltiplas classes entity para cada tabela do banco de dados.
Expandindo o arquivo Escola.edmx vemos dois arquivos importantes : Escola.Content.tt e Escola.tt
Escola.Context.tt é um arquivo template T4 que gera a classe context sempre que você altera o Entity Data Model (arquivo .edmx).
Você pode ver o arquivo de contexto expandindo o arquivo Escola.Context.tt. A classe Context reside no arquivo Escola.context.cs.
O nome padrão da classe context é {nome do banco de dados} + Entities , assim para o nosso banco de dados EscolaDB o contexto tem o nome EscolaDBEntities.
A classe Context é derivada da classe DBContext (no EF 5 e EF 6). Em versões anteriores ela era derivada da classe ObjectContext.
O descritor EDM
: representa o seu modelo conceitual. Ele consiste de Entidades, associações e
multiplicidade entre as entidades. Inicialmente, ele será parecido com a sua
estrutura das suas tabelas no banco, mas você pode adicionar ou mesclar colunas
ou remover colunas que não são exigidas por sua aplicação a partir deste
descritor.
Você pode adicionar até um novo objeto nesse modelo, que pode ter colunas de
diferentes tabelas de banco de dados a partir do menu de contexto, como mostrado
na figura acima. Lembre-se que todas as mudanças que você faz aqui serão mapeada
com o modelo de armazenamento. Então você tem que ter cuidado ao fazer qualquer
alteração no descritor.
Você pode abrir o descritor no editor XML, onde você pode ver todos as três
partes do Entity Data Model juntas em uma visão XML :
Clique com o botão direito sobre o arquivo Escola.edmx e na janela pop-up selecione a opção XML (Text) Editor e clique em Add;
Como o Visual Studio não pode exibir o modelo no modo Design e no modo XML ao mesmo tempo será apresentada uma mensagem perguntando se esta tudo OK para fechar a visão do modelo.
Clique em Sim para exibir a visão XML:
Podemos ver o conteúdo SSDL, CSDL e mapeamento. Se você expandir o SSDL e CSDL cada um terá nós XML comuns sob o nó schema. Você não precisa editar o XML pois pode fazer isso no Model Browser.
Para visualizar o Model Browser clique com o botão direito sobre o descritor EDM e no menu pop-up selecione Model Browser.
O Model Browser contém todas as informações sobre o EDM, o seu modelo conceitual, modelo de armazenamento e informações de mapeamento.
EntityContainer
- É um invólucro para EntitySets e AssociationSets.
É o ponto de entrada crítico para consultar o modelo.
EntitySet: É um recipiente para EntityType. Pode ser considerado
como uma tabela do banco de dados.
EntityType: É um tipo de dados no modelo. Você pode ver cada
EntityType para o seu modelo conceitual no XML. Se você expandir o nó
EntityType no XML, você pode ver cada propriedade e
seu tipo e outras informações.
AssociationSet: Define a relação entre cada
EntitySet.
Assim criamos o nosso Entity Data Model e demos um visão geral sobre o significado do seu conteúdo mais importante.
Na próxima aula vamos analisar os tipos de entidades que temos no Entity Framework.
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
|
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências: