Entity Framework – Conceitos e Recursos Básicos - Revista easy .net Magazine 29

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (13)  (0)

Este artigo fala sobre conceitos fundamentais do Entity Framework, que permite fazer um mapeamento dos elementos de nossa base de dados para os elementos de nossa aplicação OO, possuindo três linhas principais de utilização a serem apresentadas.

Artigo do tipo Tutorial
Recursos especiais neste artigo:
Contém nota quickupdate
Entendendo Entity Framework – Conceito e Recursos Básicos
Praticamente todo sistema tem a necessidade de persistir seus dados para posterior recuperação e estes dados são normalmente armazenados em bases de dados relacionais. Para realizar a persistência e acesso a estes, nós podemos utilizar a infraestrutura de persistência do ADO.NET ou como alternativa um framework de mapeamento objeto relacional, onde obtemos maior produtividade no desenvolvimento de nossas aplicações. Este artigo fala sobre conceitos fundamentais do Entity Framework, da Microsoft. O Entity permite que façamos um mapeamento dos elementos de nossa base de dados para os elementos de nossa aplicação orientada a objetos, possuindo três linhas principais de utilização: Database First, Model First e Code First. Ao longo deste artigo apresentaremos os principais conceitos do EF onde abordaremos estas três linhas de utilização, conhecendo as características de cada uma.


Em que situação o tema é útil

O uso de ORMs (Object-Relational Mappers) auxilia na produtividade e o Entity Framework é um dos melhores frameworks neste quesito. Com o uso do mesmo você poderá aproveitar as facilidades do mapeamento objeto-relacional em sua aplicação, obtendo o máximo de produtividade na persistência e recuperação de dados.

Na última edição vimos os principais conceitos sobre frameworks ORM, onde apresentamos alguns dos principais benefícios do uso dos mesmos. Hoje conheceremos um dos frameworks mais populares no mundo .NET, o Entity Framework.

O Entity Framework nasceu no service pack do .NET framework 3.5, no Visual Studio 2008, e de lá para cá vem ganhando várias atualizações e se tornando uma ótima escolha como framework ORM para diversos tipos de projetos.

É digno de nota que o Entity Framework, a partir de agora chamado apenas de EF, não possui uma versão 2 ou 3. O motivo é que quando um novo release ia ser lançado o .NET 4 estava para ser lançado também e por isso o EF adotou o número de versão do .NET, mas quando foi lançada a versão 5 do EF, o .NET lançava sua versão 4.5, desde então o número da versão do EF deixou de acompanhar o número da versão do .NET framework.

Uma característica fundamental do EF é que o mesmo possui três metodologias para o desenvolvimento da sua camada de acesso a dados: Database First, Model First e a Code First. As duas primeiras são centradas no trabalho visual, construindo um modelo que é gerado em um arquivo com extensão .edmx, já a terceira forma possui a centralização em classes POCO (Plain Old CLR Object). Veremos mais sobre os três modelos no decorrer do artigo.

Trabalhando com EF no seu projeto

O EF em sua versão 4 veio incorporado ao .NET framework 4, mas suas versões superiores são conseguidas usando o Nuget (Nota do DevMan 1).

Nota do Devman 1

O Nuget é uma extensão do Visual Studio que facilita a instalação e o controle de bibliotecas e ferramentas. Existem duas formas de utilizá-lo: uma visual e uma textual (console) na qual se digita os comandos para instalação e atualização das bibliotecas. O Nuget realiza os downloads necessários para você, sem que seja necessário buscar bibliotecas em várias fontes diferentes.

Por default, se você não adicionar a versão 5 ou posterior, ao iniciar um projeto no .NET 4 ele já irá usar o EF 4. Para adicionar a versão 5 pode-se acessar o Package-Manager Console e executar o seguinte comando: “Install-Package EntityFramework” e ele instalará a última versão automaticamente.

Outra maneira de adicionar o EF no projeto é de forma visual, selecionando o projeto na Solution Explorer, clicando com o botão direito e escolhendo a opção Manager NuGet Packages, onde será aberta a janela demonstrada na Figura 1. Nessa janela você pode pesquisar por “Entity Framework” na opção online. O NuGet irá baixar e adicionar a DLL ao seu projeto.

abrir imagem em nova janela

Figura 1. Adicionando o Entity Framework em sua última versão

Abordagem database first

Nem sempre que começamos um projeto temos controle do banco de dados do mesmo. Algumas vezes o banco foi projetado por outra pessoa ou mantido por seu DBA. Em outros casos, você também pode ter mais facilidade em lidar primeiro com banco de dados, o que é bastante comum de acontecer principalmente em equipes mais acostumadas com o modelo relacional do que com o modelo orientado a objetos. Nesses casos você pode usar o EF normalmente, optando pela forma Database First.

O Database First foi a primeira modalidade lançada com o EF, ele criará um modelo de dados chamado EDM (Entity Data Model) em uma representação visual (extensão .edmx) formado por códigos XML.

A ideia é que ele leia o seu banco de dados e faça uma engenharia reversa, carregando quais serão as classes que vão representar as tabelas do banco.

Conhecendo o Contexto do EF

O contexto é como uma caixa onde estarão nossas entidades. Podemos trabalhar com nossas entidades normalmente e depois adicionar as mesmas ao contexto. Todas as mudanças feitas no contexto não serão persistidas no banco de dados até que seja invocado o método SaveChanges() do mesmo.

Explicando com mais detalhes, o contexto controla o ciclo de vida das mudanças feitas nas entidades. Se alterarmos alguma entidade fora do contexto, as mudanças não poderão ser persistidas, além disso, cada contexto é isolado um do outro. A ideia é que o contexto vigie as entidades e perceba as mudanças ocorridas com elas.

O DbContext é uma abstração para trabalhar com o ObjectContext, responsável pelo contexto dos dados, incluindo o estado das entidades e suas conexões. Ele utiliza dois patterns comuns em ORMs, o primeiro é o Unit of Work que trabalha com a ideia de guardar numa espécie de sessão o estado do objeto e vigiar suas mudanças em memória. É por isso que há o método SaveChanges, pois todo o estado das entidades fica mantido somente em memória, até que esse método seja invocado e as mudanças sejam persistidas na base de dados.

O padrão Repository é o segundo, cuidando da abstração do domínio e encapsulando sua persistência, agindo como uma coleção de objetos. Quando usamos um método para, por exemplo, adicionar um item a uma lista de determinada entidade (pelos métodos AddToNomeDaEntidade ou NomeDaEntidade.Add), estamos adicionando o item ao repositório desta entidade.

No Repository criamos uma interface que irá ser chamada por toda nossa camada de acesso a dados e irá trabalhar com o tipo passado, cuidando de sua persistência.

"

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?