RSS

Arquivo da tag: Linq to SQL

Linq to SQL – Conceitos Avançados ( Parte 5 ) – Utilizando Compiled Query

Nesta quinta parte da série estarei falando sobre o uso de uma técnica muito produtiva e padronizada para a compilação de consultas chamado Compiled Query.

É muito comum em diversos sistemas a execução da mesma consulta diversas vezes por diversos usuários, porém, além de bastante improdutivo a repetição destas queries existe o fato da “perca” de desempenho em run-time. Isto devido ao fato que uma série de procedimentos e rotinas internas ocorrem para realizar a transformação destas queries para T-SQL, uma vez repetindo a mesma diversas vezes na aplicação, diversas vezes estes procedimentos internos irão ocorrer. Read the rest of this entry »

 
Deixe um comentário

Publicado por em 20/12/2011 em Linq

 

Tags: , , , ,

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

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.

Read the rest of this entry »

 
Deixe um comentário

Publicado por em 06/12/2011 em Linq

 

Tags: , , , ,

Linq to SQL – Conceitos Avançados (Parte 3) – Trabalhando com Stored Procedures complexas

 

Nesta terceira parte da série sobre Linq to SQL demonstrarei como trabalhar com Stored Procedures complexas.

Como esta é a última parte da série onde falarei sobre Stored Procedures, é muito interessante a leitura do artigo anterior onde falo sobre como trabalhar com procedures simples, veja aqui o artigo anterior.
Para este artigo vamos trabalhar com uma procedure bem mais complexa que a do artigo anterior, onde a mesma utilizará parâmetros de entrada, parâmetros de saída, tipos de retorno dinâmico e código de retorno.

 
Criando a Stored Procedure

Vamos criar a procedure ObtemGrupos, a mesma recebe um código de grupo de produtos, e retorna através do parâmetro de saída “@quantidadeProdutos” a quantidade de produtos que pertencem ao código do grupo solicitado. A mesma retorna ainda todas ou apenas algumas colunas da tabela de Grupos dependendo do
parâmetro “@todasColunas” e caso não exista um grupo com o código passado a mesma retorna 1, caso contrário retorna 0.

Vejamos como fica:


CREATE PROCEDURE ObtemGrupos
@codGrupo INT,
@todasColunas BIT,
@quantidadeProdutos INT OUTPUT
AS
 SET NOCOUNT ON

IF NOT EXISTS (SELECT 1 FROM tbProdutosGrupos WHERE codProdutoGrupo = @codGrupo)
 RETURN 1

IF @todasColunas = 1
 SELECT * FROM tbProdutosGrupos
 WHERE codProdutoGrupo = @codGrupo
 ELSE
 SELECT nome, sigla FROM tbProdutosGrupos
 WHERE codProdutoGrupo = @codGrupo

 SELECT @quantidadeProdutos = COUNT(*) FROM tbProdutos WHERE codProdutoGrupo = @codGrupo

RETURN 0

Read the rest of this entry »

 
Deixe um comentário

Publicado por em 05/12/2011 em Linq

 

Tags: , , , ,

Linq to SQL – Conceitos Avançados (Parte 2) – Trabalhando com Stored Procedures simples

Nesta primeira parte técnica da “mini-série” falarei sobre como se relaciona e procede a utilização de Stored Procedures com o Linq to SQL.

Vale ressaltar que, o funcionamento de procedures com o Linq to SQL é um tanto diferente e mais complexo do que com tabelas ou views, pois uma procedure pode possuir parametros de entrada, parametros de saída, retornos com tipos de dados diferentes de forma dinâmica, retornos com conjuntos de dados múltiplos, etc. Tudo isto dificulta a interpretação dos resultados.

Para este artigo demonstrarei o uso de uma procedures simples, a mesma apenas retorna todos os registros da tabela de usuários (tbUsuarios):


CREATE PROCEDURE SelecionaTodosUsuarios

AS
SET NOCOUNT ON
SELECT * FROM tbUsuarios

Read the rest of this entry »

 
Deixe um comentário

Publicado por em 03/12/2011 em Linq

 

Tags: , , , ,

Linq to SQL – Conceitos Avançados (Parte 1) – Introdução

Publicarei aqui uma série de artigos divididos em 8 partes sobre conceitos (de certa forma avançados) sobre Linq to SQL.

Atualmente não tenho escrito muito aqui em meu blog, devido a correria do dia-a-dia e outras prioridades, mas estou estudando bastante sobre Linq, e devido a isto estou criando esta “mini-série” de alguns conceitos que acho muito interessantes.

Divulgarei cada parte aos poucos e na seguinte ordem:
(Dependendo do caso, a ordem pode ser alterada entre eles)

Linq to SQL – Conceitos Avançados ( Parte 1 ) – Introdução (ESTE)
Linq to SQL – Conceitos Avançados ( Parte 2 ) – Trabalhando com Stored Procedures simples
Linq to SQL – Conceitos Avançados ( Parte 3 ) – Trabalhando com Stored Procedures complexas
Linq to SQL – Conceitos Avançados ( Parte 4 ) – Escrevendo diretamente com SQL
Linq to SQL – Conceitos Avançados ( Parte 5 ) – Utilizando Compiled Query
Linq to SQL – Conceitos Avançados ( Parte 6 ) – Evitando e tratando concorrência
Linq to SQL – Conceitos Avançados ( Parte 7 ) – Adicionando validações
Linq to SQL – Conceitos Avançados ( Parte 8 ) – Trabalhando com Transactions

Como havia escrito anteriormente, ainda estou estudando e não domino totalmente Linq. Portanto pode ser que exista algum erro, ou recurso que pode ser feito de uma forma diferente (ou até melhor).

Fiquem a vontade para sugestões, críticas e feedbacks.

Abraços e até o próximo artigo sobre Trabalhando com Stored Procedures simples

 
Deixe um comentário

Publicado por em 02/12/2011 em Linq

 

Tags: , , , ,

 
%d blogueiros gostam disto: