Desenvolvendo para web

ASP.NET 3.5, AJAX, LINQ, Segurança, Silverlight, Web Mobile.

O Entity Framework é a tecnologia de acesso a dados via ADO.NET que oferece o mapeamento objeto relacional (O/R) a um nível conceitual de abstração. As ferramentas do ADO.NET geram classes .NET que representam o esquema do banco de dados da aplicação permitindo aos desenvolvedores formular consultas no banco de dados utilizando a linguagem de programação usada para construir a lógica de negócio diminuindo assim a quantidade de código necessário para realizar as consultas e aumentando a produtividade da equipe no projeto.

Figura 1 - Arquitetura do Entity Framework

A primeira pergunta sobre Entity Framework que todos fazem é: Ele funciona apenas para SQL Server? A resposta é não, sua arquitetura permite a conexão com vários providers para outros bancos de dados. Assim como podemos ver neste post do Ramon Durães Provedores para o Entity Framework 4.0.

O objetivo deste artigo é mostrar como é simples fazer CRUD com Entity Framework e para isso criei um exemplo baseado no cenário de uma biblioteca. Uma biblioteca possui livros que são cadastrados no sistema e classificados conforme sua categoria (Administração, Direito, Informática, etc.).

Iniciaremos nosso exemplo criando um banco de dados SQLServer 2000 ou superior chamado BDEFCRUD. Com o banco criado execute o script Criacao de tabelas.txt e depois Inserção de dados em CATEGORIA.txt.

Agora vamos criar o nosso projeto. No Visual Studio 2010 clique em File | New | Project.... Selecione .NET Framework4, em Installed Templates | Web escolha Empty ASP.NET Web Application. Preencha o campo Name com CRUDEntityFramework e mantenha a opção “Create directory for solution” selecionada e clique em OK.

Figura 2

O passo inicial para o nosso projeto é a criação do Entity Data Model, ou EDM, que é o modelo de dados Entidade-Relacionamento do Entity Framework. Para isso clique com o botão direito na solução e depois em Add | New Item....Em Installed Templates | Data escolha ADO.NET Entity Data Model e preencha o campo Name com EntityDataModel e clique em Add.

Figura 3

Após clicar no botão Add será iniciado o wizard para definição do Entity Data Model.

Passo 1: Define como será a geração do modelo.

Como já temos o nosso banco de dados criado vamos escolher gerar a partir de um banco de dados e clicar no botão Next.

Figura 4

Passo 2: Escolha do banco de dados.

Clique em New Connection e preencha os campos com os dados do banco de dados que criamos e do seu servidor. Teste as configurações clicando no botão Test Connection, a mensagem “Test connection succeeded.” deve ser exibida. Por último clique no botão OK.

Figura 5

Selecione as opções “Yes, include de sensitive data in the connection string .” e “Save entity connection settings in Web.config as:” e deixe o campo preenchido com o valor default.

Figura 6

Passo 3: Definição dos objetos que serão incluídos no modelo.

Marque as tabelas CATEGORIA e LIVRO. Selecione a opção “Include foreign key columns in the model”, esta opção permite que sejam criadas as propriedades para os campos que são foreign key nas classes geradas pelo modelo e com as propriedades criadas fica mais simples fazer inserções e atualizações no banco de dados, agora é só clicar em Finish.

Figura 7

Agora podemos visualizar EDM com as tabelas do nosso banco de dados.

Figura 8

Podemos observar que foi criada uma classe para cada tabela do banco de dados, estas classes são denominadas entity types pelo EDM. Além disso, foram definidos os relacionamentos entre as classes.

Vamos então criar a interface da nossa aplicação. Para isso clique com o botão direito no projeto e depois em Add | New Item.... Em Installed Templates | Web selecione Web Form. Preencha o campo Name com Default.aspx e clique no botão Add. Para facilitar, altere o conteúdo HTML do arquivo Default.aspx pelo conteúdo do arquivo Default.aspx.txt e o design do Default.aspx deverá ficar como o da figura abaixo:

Figura 9

Na interface que acabamos de criar existe o campo Categoria com um DropDownList que deve ser carregado com as categorias existentes no banco de dados. Vamos então ao código da nossa página Default.aspx. Devemos criar um método chamado CarregaCategoria.

Figura 10

A primeira etapa para qualquer processo a ser realizado no banco de dados com Entity Framework é instanciar o contexto.

Figura 11

Agora é só buscar os dados e associar ao DropDowList.

Figura 12

No método Page_Load vamos fazer a chamada ao método CarregaCategoria.

Figura 13

Agora é só executar o projeto e ver o resultado.

Figura 14

Nesta primeira parte do artigo apreendemos a criar o Entity Data Model e fazer consultas na base de dados, no próximo artigo faremos inserções, atualizações e exclusões no banco de dados.

Participe deste artigo deixando seu comentário.

Aprofunde seus conhecimentos sobre esse tema na comunidade ADO.NET.

[]’s,
Thaís Simonato de Paula

Comentar

Você precisa ser um membro de Desenvolvendo para web para adicionar comentários!

Entrar em Desenvolvendo para web

rogerio garibalde miranda Comentário de rogerio garibalde miranda em 21 julho 2010 às 17:09
o codigo desse projeto esta em alguma parte? pode ser disponibilizado?
Junior PachekOo Comentário de Junior PachekOo em 9 junho 2010 às 18:35
Com certeza muito útil!
Ítalo Chesley Comentário de Ítalo Chesley em 23 fevereiro 2010 às 15:38
Thaís, precioso o seu texto.Me auxiliou muito no estudo. Parabéns!
Thaís Simonato de Paula Comentário de Thaís Simonato de Paula em 2 fevereiro 2010 às 19:54
Guilherme,

Apenas uma correção de nomenclatura é que nós estamos trabalhando com o Entity Framework e não com o EDM, o EDM é o modelo gerado pelo Entity Framework. Vamos as perguntas então:

1° Em relação ao desempenho, não há perda de desempenho no Entity Framework e sim melhoria em alguns pontos. O momento que devemos ficar atento é ao instanciar o contexto, pois este contém todos os objetos do modelo, metadados que descrevem o modelo, além do objeto de conexão com o banco de dados, portando o contexto pode crescer muito dependendo do tamanho do seu modelo e deve ser gerenciado corretamente para não carregar a aplicação.Você pode dar uma olha neste artigo que fala detalhadamente de performance.

2° EDM é o modelo de dados do EF. LinqToSQL é a tecnologia de acesso a dados via LINQ voltada apenas para banco de dados SQLServer.

Qualquer dúvida pode posta lá no grupo de ADO.NET que vamos conversando.

[]'s,
Thaís
Guilherme Carvalho Comentário de Guilherme Carvalho em 2 fevereiro 2010 às 17:32
Realmente estou tendo a oportunidade de trabalhar com o EDM, mas tenho algumas dúvidas, a mais importante seria em relação ao desempenho do EDM quando comparado ao ADO normal, existe algum tipo de perca considerável quando utilizamos o EDM? A outra seria se o EDM é a mesma coisa que o LinqToSQL?
Thomas Anjos Comentário de Thomas Anjos em 1 fevereiro 2010 às 10:46
Show de bola Thais... Aguardo a segunda edição.
Renato Aranda Comentário de Renato Aranda em 1 fevereiro 2010 às 8:43
Parabens pela iniciativa Thaís.
Show de bola seu artigo...

Esperando a parte 2...

Renato Aranda
Jacimar Comentário de Jacimar em 31 janeiro 2010 às 16:20
Perfeito..
Muito bem explicado.. Como os colegas estou aguardando o próximo post..
Parabens
Rafael Amorim Comentário de Rafael Amorim em 31 janeiro 2010 às 14:07
Muito Bom!!!

estamos aguardando o proximo msm!!

[]'s
Nelson Borges Comentário de Nelson Borges em 30 janeiro 2010 às 22:57
Muito legal o post, bem organizado e bem explicado (:

Complemento com um artigo que fiz de como utilizar stored procedures no Entity em vez de deixar ele gerar o T-SQL.


Parabens pela iniciativa.

Abs,

Nelson Borges

© 2010   Criado por Ramon Durães   Ativado por .

Badges  |  Relatar um incidente  |  Termos de serviço