DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da .net Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Entity Framework passo a passo - .Net Magazine 74

Este artigo aborda algumas novidades presentes na nova versão do Entity Framework (EF) como o Model First, onde iniciaremos a criação de um exemplo a partir de um modelo ao invés do banco de dados, e a utilização de classes POCO, que são entidades que não dependem de uma tecnologia de persistência em específico.






Entity Framework passo a passo

 

Com o Visual Studio 2008 surgiu o LinqToSql, uma forma de utilizar o padrão Linq para realizar consultas SQL em bancos de dados relacionais. Este foi sem dúvida um grande avanço para a comunidade .NET que pôde deixar de escrever instruções SQL dentro do código de suas classes e passou a trabalhar com query’s fortemente tipadas, com auxílio de IntelliSense e do compilador.

Após o LinqToSql a Microsoft lançou o Entity Framework, uma primeira versão de sua ferramenta ORM. Com o Entity Framework 1.0 houve uma grande mudança na forma como os desenvolvedores e os projetos em si passaram a encarar o banco de dados – era então possível se preocupar apenas com o modelo de domínio, as regras e lógicas do negócio, ao invés de se preocupar com a forma como os dados seriam armazenados, organizados e manipulados. Com a nova versão do Entity Framework (EF4) há suporte para técnicas como Model First e trabalho com classes POCO, ambos assuntos discutidos neste artigo.

 

Nota do DevMan

ORM, ou Object Relational Mapping, é a técnica utilizada para mapear os dados de objetos em dados para tabelas de bancos de dados relacionais. Isto é necessário, pois em sistemas orientados a objetos informações de herança, agregações, composições e tipos complexos não são facilmente convertidos em dados relacionais.

 

Nota do DevMan

POCO (Plain Old CSharp Object ou Plain Old CLR Object) são classes que não implementam e nem dependem de nenhum framework/ferramenta externa para existirem. Não precisam ter seu comportamento alterado nem código específico injetado em sua definição.

 

Quando estamos trabalhando com orientação a objetos não queremos (ou não deveríamos) ter de pensar em como estes objetos serão armazenados, e nem exatamente onde eles serão armazenados. Não queremos ter de nos preocupar com o local onde fisicamente eles estarão. E principalmente, não queremos alterar a relação ou estrutura destas classes para terem de se adaptar a forma como e onde serão armazenados estes objetos e também não queremos mantê-las dependentes ou vinculadas a ferramentas específicas de mapeamento com bancos de dados. Agora é possível manter uma separação entre o modelo lógico e o modelo físico.

Para compreendermos a utilização das novas funcionalidades do EF4 criaremos a estrutura de classes para trabalhar com bandas, músicas e álbuns. Para desenvolver todo este cenário criaremos um modelo de classes utilizando um diagrama, então criaremos nossas classes de maneira POCO e geraremos também o banco de dados após a modelagem e codificação das classes. Tudo será feito de forma simples e passo a passo para ajudar o leitor que está criando seu primeiro projeto com o EF4.

Criando o modelo de entidades

Inicialmente criaremos um modelo de classes, para isso faremos uso de um diagrama. Este modelo não é uma novidade desta versão, no entanto utilizaremos o diagrama de forma que ele não gere o código de nossas classes, e o criaremos do zero, sem mapear um banco de dados existente (é o que chamamos de Model First).

No VS crie uma Solution com um projeto do tipo Console Application. Adicione um arquivo ADO.NET Entity Data Model conforme mostra a Figura 1. Após será aberta uma tela com duas opções, a primeira é para gerarmos o modelo a partir de um banco de dados existente, e a outra opção é para gerarmos um modelo vazio (selecione esta).

 


Figura 1. Criando o ADO.NET Entity Data Model

 

Feito isso será aberta uma tela onde desenharemos nossas classes, mas antes vamos desabilitar a geração de código pelo EF, pois iremos trabalhar com classes POCO. Isso pode ser visto na Figura 2. Para acessar esta janela clique com o botão direito na parte branca do diagrama e selecione Properties. Isso torna nossas classes mais simples, menos acopladas e dependentes de outras classes. Ajuda na manutenção, evolução e migrações futuras, além de criar uma clara separação entre nosso modelo e outras ferramentas de infraestrutura, como o banco de dados.

 


Figura 2. Desabilitando a geração de código automática

 

Agora criaremos as classes necessárias ao nosso domínio, neste caso as classes Banda, Musica e Album. O diagrama com o modelo destas classes pode ser conferido na Figura 3. Perceba que não criamos ainda as associações entre as classes. Faremos isso também utilizando o modelo. A criação das entidades é muito simples, basta dar um clique de direita no modelo e escolher Add > Entity. A seguir, para adicionar propriedades em cada entidade, basta clicar sobre ela e escolher Add > Scalar Property, definindo seu nome e tipo na janela de propriedades.

 


Figura 3. Modelo de classes

 

   Vamos agora criar algumas associações entre as nossas entidades. Note que estamos falando de associações entre entidades, e não estamos nos preocupando como isso será feito no banco de dados. O que nos interessa é modelar o domínio do nosso problema. Neste cenário uma Musica possui uma relação com Banda. Uma Banda pode estar associada com mais de uma Musica. Um Album possui associação com mais de uma Musica e também uma associação com uma Banda. E a Banda por sua vez possui uma associação com mais de um Album.

Para criar uma associação, basta clicar sobre a classe e escolher a opção Add > Association. Na Figura 4 vemos como criar a associação de Banda com Musica, no caso uma banda (1 – One) tem muitas músicas (* - Many). De forma similar é possível criar as demais associações seguindo os mesmos passos, até obtermos o modelo conforme mostrado na Figura 5.

 

"



ATENÇÃO! A exibição deste artigo foi interrompida.


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da .net Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



Publicidade
Autor
Vinicius Quaiato

Trabalha com desenvolvimento de software há cerca de 4 anos, especificamente com tecnologias Microsoft .NET. Aficcionado por arquitetura e boas práticas. Atualmente trabalha com desenvolvimento e arquitetura de aplicações SOA. Atua na comunidade .Net Architects e coordena o grupo de Coding Dojo da m...


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03