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.
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...
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo