ADO.NET Entity Framework - .Net Magazine 80

Veremos neste artigo alguns conceitos básicos e técnicas relacionadas ao Entity Framework, explorando um pouco do seu funcionamento através de alguns exemplos práticos. Com isso, uma boa visão do que é necessário para sua utilização será apresentada, além de serem verificadas algumas motivações que levaram ao seu surgimento.

Do que trata o artigo

Veremos neste artigo alguns conceitos básicos e técnicas relacionadas ao Entity Framework, explorando um pouco do seu funcionamento através de alguns exemplos práticos. Com isso, uma boa visão do que é necessário para sua utilização será apresentada, além de serem verificadas algumas motivações que levaram ao seu surgimento.

Para que serve

O ADO.NET Entity Framework é uma das principais ferramentas de persistência presentes na plataforma .NET. Este OR/M (Object-Relational Mapping) propõe soluções para minimizar o problema de impedância, abstraindo do desenvolvedor vários detalhes dos bancos de dados, e fornecendo ainda uma série de recursos que aumentam muito a sua produtividade.

Em que situação o tema é útil

No desenvolvimento de aplicações que utilizem bancos de dados relacionais para salvar seus dados, com a utilização do Entity Framework, o banco de dados se torna apenas um detalhe, e o desenvolvedor pode se concentrar no que realmente interessa, ou seja, as regras de negócio a aplicação.

Resumo do DevMan

A utilização do Entity Framework propõe o mapeamento entre o modelo de objetos e o esquema específico de armazenamento, amenizando a disparidade do paradigma objeto/relacional. Além disso, essa ferramenta traz muitos recursos, como linguagens de consulta em alto nível e validação em tempo de compilação. Para que seja possível aproveitar esses benefícios, o entendimento de alguns conceitos se faz necessário, e é isso que esse artigo demonstra.´

A capacidade de recuperar e modificar dados persistentes em aplicativos é um dos pontos mais críticos para o seu planejamento. A prática mais utilizada e bem estabelecida para alcançar tal característica faz uso da tecnologia de banco de dados relacional, que proporciona benefícios em relação à questões como concorrência, desempenho e facilidade de gerenciamento, entre outros.

As tecnologias de acesso a dados da Microsoft sofreram grandes mudanças desde o seu surgimento, e um histórico resumido pode ser observado na Figura 1.

Figura 1. Evolução das tecnologias de acesso a dados da Microsoft

Segundo Andrew Troelsen, o “ADO.NET é a tecnologia de acesso a dados nativa da plataforma .NET, e pode ser utilizada de três maneiras distintas: conectada, desconectada, ou através do Entity Framework” (TROELSEN, 2010, p. 883).

A camada conectada representa a maneira mais direta disponível para o acesso a dados, e também a mais flexível. Sua utilização é muito simples, e esta estrutura pode ser observada na Figura 2.

Figura 2. Modelo conectado do ADO.NET

As classes DataReader, Command e Connection possuem implementações específicas para cada provedor de dados, mas sua utilização é transparente. Através da classe Connection, é definida uma conexão (sua abertura e fechamento ficam a cargo do desenvolvedor), que serve como um canal de comunicação e gerenciamento com o banco de dados. Uma vez estabelecida, é passada para um objeto Command, que fica responsável por informar ao banco de dados uma tarefa à ser executada (pode ser qualquer operação CRUD). No caso de uma consulta, os valores são retornados através de um objeto DataReader. Acompanhe a Listagem 1, onde essa técnica é demonstrada para o banco de dados SQL Server.

Observe que um SqlConnection foi instanciado dentro da cláusula using, que vai liberá-lo automaticamente da memória após sua execução. A conexão é aberta e passada para um SqlCommand, que recebe também instruções SQL e parâmetros para realizar uma consulta por ID, retornada em um DataReader. A conexão será fechada automaticamente ao final das instruções.

Listagem 1. ADO.NET

try { int id = 99; string connectionString = @"Data Source=.\sqlexpress;Initial Catalog=artigosdb;Integrated Security=True;Pooling=False"; using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); using (SqlCommand cmd = new SqlCommand()) { cmd.Connection = conn; cmd.CommandText = "SELECT nome FROM Autores WHERE Autores.Id = @AutorId"; SqlParameter param = new SqlParameter("@AutorId", SqlDbType.Int, 50, "id"); param.Value = id; cmd.Parameters.Add(param); Console.WriteLine("Autor: " + cmd.ExecuteScalar()); Console.ReadLine(); } } } catch (Exception ex) { Console.WriteLine(ex.Message); }

Embora o modelo conectado seja uma alternativa, o ADO.NET foi concebido visando a nuvem, onde o custo do tráfego de rede é considerado alto. O modelo desconectado (Figura 3) tenta amenizar este problema, diminuindo o número de acessos ao banco de dados.

Nessa abordagem, o ator principal é o DataSet, sendo este uma representação em memória das tabelas e relacionamentos do banco de dados. Sua obtenção e manipulação é responsabilidade do DataAdapter, que em conjunto com um objeto Connection, funciona como uma ponte entre o DataSet e o banco de dados. A ideia nesse modelo é que utilizando um DataAdapter, uma conexão com o banco de dados seja aberta, o DataSet obtido e a conexão fechada imediatamente. A aplicação pode então fazer uso do DataSet, e atualizar seu conteúdo enquanto desconectado da fonte de dados. O DataAdapter é capaz de resolver alterações feitas no DataSet, e enviar os dados modificados para o banco de dados (através de instruções SQL)." [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados