VB .NET - Curso Prático ADO .NET - Módulo de Administração : Gerando o modelo de entidades - II


Vamos continuar o nosso curso prático sobre ADO .NET usando a linguagem VB .NET onde na primeira parte desenvolvemos uma pequena aplicação para uma revenda de filmes e agora estamos desenvolvendo o módulo de administração do sistema.

Nesta aula iremos criar o projeto Windows Forms, referenciar o Entity Framework e criar o nosso Entidade Data Model(EDM) que gera o nosso modelo de entidades e realiza o mapeamento com as tabelas do banco de dados CiaFilmes.mdf.

O EDM é um modelo entidades - relacionamentos onde :
  • Entidades - são instâncias de tipos de entidades como Clientes, Produtos os quais estão estruturados em registros e chaves;
  • Relacionamentos - são instâncias de tipos de relacionamentos que são associações entre duas ou mais tipos de entidades;

É 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 Entities.

Para melhor compreendermos os conceitos relacionados com a EDM podemos separá-los em dois conjuntos:

Você vai perceber que a quantidade de código que será necessário para realizar as tarefas de acesso e persistência aos dados será muito menor pois não teremos que utilizar os objetos ADO .NET nem os comandos SQL.

Criando o projeto Windows Forms e gerando o Entity Data Model (EDM)

Abra o Visual Studio 2012 Express for desktop e clique em New Project ou em FILE -> New Project;

A seguir selecione a linguagem Visual Basic e o template Windows Forms Application informando o nome CiaFilmesWinAdmin;

Será gerada uma solução contendo um projeto com o mesmo nome. A solução irá conter um arquivo App.Config e o formulário Form1.vb;

No menu PROJECT clique em Add New Item;

Referenciando o Entity Framework

Precisamos incluir uma referência ao Entity Framework em nosso projeto e podemos fazer isso de duas maneiras:

  1. No menu TOOLS opção Library Package Manager opção Package Manager Console

Esta opção abre o console para que você possa digitar o comando para instalar o pacote desejado. Para instalar o Entity Framework 5.0 digite o comando:

PM> Install-Package EntityFramework -Version 5.0.0

Para instalar a última versão, a 6.0.1 digite o comando:

PM> Install-Package EntityFramework -Version 6.0.1

  1. No menu TOOLS opção Library Package Manager opção Manage Nuget Packages for Solution

Esta opção abre a janela Manage Nuget Packages. Clique na guia Online para localizar o pacote desejado (você pode usar a caixa Search Online). Localizando o pacote selecione-o e clique no botão Install:

Nesta opção você instala sempre a última versão disponível.

Após a instalação você pode verificar na janela Solution Explorer clicando no ícone Show All Files e confirmando na pasta References a referência ao Entity Framework:

Pronto agora já temos o Entity Framework pronto para ser usado. Vamos criar o modelo de entidades em nosso projeto gerando o Entity Data Model- EDM.

Gerando o modelo de entidades - EDM

Selecione a guia Data e clique em ADO .NET Entity Data Model informando o nome CiaFilmes.edmx e clique no botão Add;

Na próxima janela selecione a opção : Generate from Database e clique em Next>;

A seguir selecione a conexão com o banco de dados CiaFilmes;

Deixe marcada a opção para salvar a conexão no arquivo App.Config e aceite o nome padrão para o contexto: CiaFilmeEntities e clique no botão Next>;

Expanda e selecione todas as tabelas do banco de dados e marque a opção : Pluralize or singularize generated object names e aceite o nome para namespace Model e clique em Finish;

Nota: A opção Pluralize or singularize generated object names permite gerar uma entidade com o nome Pedido a partir da tabela Pedidos

Será gerado na Janela Soluction Explorer o arquivo CiaFilmes.edmx e o modelo de entidades (as classes) que pode ser visto no descritor conforme figura a seguir:

Observe que temos todas as tabelas mapeadas para entidades, onde os relacionamentos entre as tabelas existem como associações entre as entidades permitindo a navegação entre as mesmas.

Você pode editar as classes para modificar seus nomes ou os nomes de suas propriedades para adicionar relacionamentos com outras classes, incluir herança,etc.

Lazy Load é o mecanismo utilizado pelos frameworks de persistência para carregar informações sobre demanda. Esse mecanismo torna as entidades mais leves, pois suas associações são carregadas apenas no momento em que o método que disponibiliza o dado associativo é chamado. Assim quando objetos são retornados por uma consulta, os objetos relacionados não são carregados ao mesmo tempo, ao invés, eles são carregados automaticamente quando a propriedade de navegação for acessada.  É também conhecido como "lazy loading".

Na janela de propriedades vemos as propriedades do nosso container gerado que representa o nosso contexto e que nos dá acesso as entidades:

Observe o nome do container, o seu namespace e a opção Lazy Loading Enabled marcada como True;

Selecionando uma entidade e clicando com o botão direito do mouse teremos um menu suspenso com várias opção. Clicando em Table Mapping veremos o mapeamento gerado para a entidade. Abaixo vemos a entidade Filme e o seu mapeamento com a tabela Filmes:

Clicando sobre uma área vazia do descritor com o botão direito do mouse, no menu suspenso temos a opção Model Browser que exibe todo o modelo objeto relacional onde podemos ver as entidades, as associações e as tabelas:

Na janela Solution Explorer clicando no ícone Show All Files, expandindo os objetos para o arquivo CiaFilmes.edmx vemos no arquivo CiaFilmes.tt o modelo de entidade gerado:

No arquivo  de configuração da aplicação -  App.Config - vemos a string de conexão ou entity connection que foi gerada e salva:

<?xml version="1.0" encoding="utf-8"?>

<configuration>

<startup>

<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />

</startup>

<connectionStrings><add name="CiaFilmesEntities"

connectionString="metadata=res://*/CiaFilmes.csdl|res://*/CiaFilmes.ssdl|res://*/CiaFilmes.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDB)\v11.0;initial catalog=CiaFilmes;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />

</connectionStrings>

</configuration>

 

Temos assim tudo pronto para trabalharmos diretamente com as entidades e não precisaremos nos preocupar mais com tabelas, comandos SQL ou objetos ADO .NET.

O Entity framework gerou todo modelo e realizou o mapeamento objeto relacional. Tudo isso sem termos que digitar nenhuma linha de  código.

Agora já podemos usar o Entity Data Model gerado para realizar o acesso a persistência dos dados em nossa aplicação.

O arquivo com extensão .edmx gerado contém os 3 arquivos XML EDM mesclados de forma que toda modificação feita no descritor atualizará os arquivos.

Na próxima aula vamos criar o formulário de login.

      Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti