RSS

Linq to SQL – Conceitos Avançados (Parte 4) – Escrevendo diretamente com SQL

06 dez

Nesta quarta parte da série demonstrarei como podemos realizar consultas e chamadas com SQL diretamente utilizando Linq.

Visando que o Linq to SQL faz parte do pacote de tecnologias ADO.NET e seus serviços são prestados pelo modelo do provedor ADO.NET, isto torna possível juntar Linq to SQL com ADO.NET. Um exemplo claro, é possível criar uma nova instância de um DataContext utilizando uma conexão ADO.NET existente.

Em alguns casos pode ser que a consulta a ser realizada, ou a query a ser executada sejam muito específicas. Nestes casos é possível utilizar os métodos ExecuteCommand e ExecuteQuery para que comandos SQL sejam executados diretamente em seu banco de dados a partir de seu DataContext.

ExecuteCommand

O método ExecuteCommand permite que seja realizada uma consulta diretamente no banco de dados.

Exemplo:


int atualizado =

_db.ExecuteCommand("UPDATE tbProdutosGrupos SET nome = 'Cristais' WHERE codProdutoGrupo = 8");

if (atualizado == 1)
Console.WriteLine("O registro foi atualizado");
else
Console.WriteLine("O registro não foi atualizado");

Observe que a query foi executada diretamente no banco de dados e retornou um inteiro (1 sucesso na operação e 0 falha na operação)

ExecuteQuery

O método ExecuteQuery permite que seja executada uma consulta SQL e converte o resultado diretamente em objetos.

Exemplo:


IEnumerable<tbProdutosGrupo> grupos =

_db.ExecuteQuery<tbProdutosGrupo>("SELECT * FROM tbProdutosGrupos ORDER BY nome");

Console.WriteLine("Quantidade de Grupos existentes: {0}", grupos.Count());

Neste caso a query foi executada e retornou um IEnumerable de tbProdutosGrupo.

NOTA: Atente-se que, como a query é executada diretamente no banco de dados, o nome da entidade deve ser o mesmo de sua tabela e não ao definido no DataContext.

Executando o código podemos ver as iterações com banco:

Anúncios
 
Deixe um comentário

Publicado por em 06/12/2011 em Linq

 

Tags: , , , ,

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: