Início > LINQ > O que é LINQ ?

O que é LINQ ?

Microsoft Language Integrated Query é uma extensão do .NET Framework e foi introduzida na versão 3.5, seu principal objetivo é diminiur o “GAP” que existe entre objetos e dados. A princípio o LINQ permite realizar consultas (Queries) com objetos, com ele é possível por exemplo fazer uma pesquisa em uma coleção de um objetos por um determinado parâmetro, de um modo parecido com o que utilizamos para fazer consultas a tabelas de banco de dados com a linguagem SQL (Structured Query Language).

Quantas vezes você não precisou recuperar apenas alguns elementos de uma coleção e para isso você foi obrigado a fazer um foreach por todos os seus elementos, e dentro dele fazer as decisões para escolher qual você precisa ? Usando o linq isso muda de figura. Supondo que vamos utilizar uma coleção de alunos e queremos saber quais alunos desta coleção nasceram antes de 1991, no modo tradicional é necessário , por exemplo, fazer o código mostrado na figura 1.

Figura 1
  1. private List<Aluno> RecuperarAlunosTradicional()
  2.       {
  3.           // Recuperar os alunos que tenham nascido antes de 1991
  4.           DateTime dtLimite = Convert.ToDateTime("01/01/1991");
  5.           List<Aluno> colAlunosRetorno = new List<Aluno>();
  6.           foreach (Aluno al in colAlunos)
  7.           {
  8.               if(al.DataNascimento < dtLimite)
  9.               {
  10.                   colAlunosRetorno.Add(al);
  11.               }
  12.           }
  13.           return colAlunosRetorno;
  14.       }

 

Agora após conhecer o linq é possível resolver o mesmo problema com o código da figura 2.

 

Figura 2
  1. private List<Aluno> RecuperarAlunosLinq()
  2.         {
  3.             // Recuperar os alunos que tenham nascido antes de 1991
  4.             DateTime dtLimite = Convert.ToDateTime("01/01/1991");
  5.             var colAlunosRetorno = from al in colAlunos
  6.                                    where al.DataNascimento < dtLimite
  7.                                    select al;
  8.  
  9.             return colAlunosRetorno.ToList();
  10.         }

Basicamente objetos que suportam as interface IEnumerable, IEnumerable<T> como DataSet, List<>, Array permitem que sejam feitas “Queries” nos seus objetos.

Outros exemplo interessantes do LINQ são :

  • Count()

    Retorna a quantidade de elementos de uma coleção.

    1. int qtdAlunos = colAlunosRetorno.Count();

  • First()

    Retorna o primeiro elemento de coleção

    1. Aluno primeiroAluno = colAlunosRetorno.First();

  • Last()

    Retorna o último elemento de uma coleção

    1. Aluno ultimoAluno = colAlunosRetorno.Last();

    O LINQ pode ser com diversas fontes de dados:

 

  • LINQ x SQL

    Permite conectar a uma base SQL e executar instruções de SELECT, INSERT, UPDATE ou DELETE

  • LINQ x DataSet

    Permite efetuar consultas em objetos do tipo DataSEt que estão em memória, isso simplifica o modo de trabnalhar com dados em “Cache”

  • LINQ x Entities

    Efetua consultas com modelos criados com o Entity Framework (EF)

  • LINQ x XML

    Permite manipular diretamente estruturas em XML, criá-las, adicionar dados ou transformar um XML.

  • LINQ x Object

    Ao meu ver o melhor do LINQ, pois é possível efetuar diversas consultas em objetos existentes no nosso programa, comparar Coleções e encontrar os elementos diferentes, filtrá-las, o trabalho que antes era tedioso, torna-se muito simples com o LINQ

    Essa é a idéia geral do LINQ em outros posts vamos falar mais especificamente em como tirar proveito de todo esse potencial.

      Referências

      Linq
    Anúncios
    Categorias:LINQ
    1. Nenhum comentário ainda.
    1. No trackbacks yet.

    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: