Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da .net Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
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.
.net Magazine 80
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da .net Magazine 80
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da .net Magazine 80
ADO.NET Entity Framework
Investigando os principais conceitos e aplicações
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.
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.
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).
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
Investigando os principais conceitos e aplicações
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.
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.
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).
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da .net Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais!

Você está em:
canal .net



0
0
