Introdução ao LINQ to SQL parte 1

Nesta postagem irei demonstrar como as consultas de rotina efetuadas em SQL (Structured Query Language – Linguagem Estruturada de Consultas) podem ser otimizadas utilizando o LINQ to SQL (Language Integrated Query – Linguagem Integrada de Consultas para SQL), a plataforma  de Objeto-Relacional (OR) desenvolvida pela Microsoft, sendo incorporada nas linguagens Visual Basic.NET e C#.NET, pertencentes ao conjunto de aplicativos de desenvolvimento Visual Studio desde a versão lançada no ano de 2008.

Assim como o SQL, o LINQ também possui uma gama de comandos que são muito úteis para a extração das informações necessárias.

A diferença mais básica do LINQ para o SQL padrão é a seguinte: o SQL padrão permite somente efetuar consultas em bases de dados relacionais, já o LINQ além de também dar conta desta tarefa (atualmente só no SQL Server), permite que sejam efetuadas consultas dentro de vetores, coleções do tipo IEnumerable<T> (LINQ to Objects), manipulação de XML em memória (LINQ to XML), consulta de DataSet em memória (LINQ to DataSet), entre outros.

Operadores do LINQ

Select

Faz uma projeção na coleção de dados para selecionar regiões relevantes entre os elementos.

Where

Define regras de filtragem na coleção de dados que são avaliadas para cada item.

SelectMany

Mapeamento estipulado pelo programador de uma coleção de dados para coleções.

Sum, Min, Max, Average

Encontra a soma, o menor elemento, o maior elemento ou a média dos itens da coleção de dados, respectivamente.

Aggregate

Uma versão generalizada de Sum,Min, Max.

Join, GroupJoin

Faz a junção de duas coleções de dados, baseado em chaves de comum valor semântico em cada coleção.

Take, TakeWhile

O primeiro seleciona os primeiros n ojectos da coleção, enquanto o segundo toma um predicado que seleciona os objectos que casam com o predicado.

Skip, SkipWhile

Complementos dos anteriores, eles ignoram os primeiros n objetos da coleção, ou enquanto há casamento com o predicado.

OfType

Seleciona objetos de determinado tipo.

Concat

Concatena duas coleções.

Orderby, ThenBy

O primeiro determina o critério de ordenação da coleção de dados, ascendente por padrão. O segundo especifica critérios subsequentes de ordenação.

Reverse

Inverte a ordenação da coleção de dados.

GroupyBy

Extrai uma chave e retorna uma coleção para cada chave.

Distinct

Remove instâncias repetidas na coleção.

Union, Intersect, Except

Provem união, interseção e complementar em duas sequências, respectivamente.

SequenceIgual

Verifica se todos os elementos de duas coleções são iguais.

First, FirstOrDefault, Last, LastOrDefault

Retorna o primeiro elemento, o primeiro ou o valor padrão, o último, o último ou valor padrão da coleção de dados, respectivamente.

Single

Retorna o único elemento que casa um predicado dado. Havendo nenhum ou múltiplos casamentos, uma exceção é lançada.

ElementAt

Retorna o elemento em determinado índice na coleção de dados.

Any, All, Contains

O primeiro verifica se algum elemento da coleção casa o predicado. O segundo verifica se todos os elementos da coleção casam o predicado. O terceiro verifica se a coleção contém determinado valor.

Count

Conta a quantidade de elementos em uma coleção.

Ainda são especificados alguns operadores de conversão da coleção em outro tipo:[3]

  • AsEnumerable: converte para IEnumerable<T>.
  • ToQueryable: converte para IQueryable<T>.
  • ToArray: converte para vetor.
  • ToList: converte para IList<T>.
  • ToDictionary: converte para IDictionary<K, T>, indexado por K.
  • ToLookup: converte para ILookup<K, T>, indexado por K.
  • Cast: converte uma coleção IEnumerable não-genérica para uma IEnumerable<T>, por conversão de tipo.
  • OfType: converte uma coleção IEnumerable não-genérica para uma IEnumerable<T>, incluindo somente elementos do tipo T.
Anúncios

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