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)

Context & Entity Classes:

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:


José Carlos Macoratti