LINQ e Entity Framework

Olá a todos!

Neste post vamos demonstrar algumas possibilidades de utilização da linguagem de consulta LINQ sobre um modelo conceitual do Entity Framework.

O LINQ foi introduzido a partir da versão 3.5 do Framework .NET e permite realizar consultas sobre diversas fontes de dados, como por exemplo, documentos XML, vetores, coleção de objetos, bases de dados, etc. Sua sintaxe é inspirada no SQL porém respeitando uma lógica de raciocínio que segue o princípio básico de um foreach, porem com muito mais recursos.

Basicamente toda query é montada respeitando a idéia

from…
where…
select…

Sintaxe de referência:

var dados = from elemento in lista_de_dados where clausula_consulta select elemento

Exemplo 1: Selecionando dados a partir de um vetor de strings


string[] nomes = new string[5] { "Ana Clara", "Beatriz", "Débora", "Lilian", "Ana Alice" };
var dados = from n in nomes where n.StartsWith("Ana") select n;
foreach (string reg in dados)
{
   lblDados1.Text += reg + " - ";
}

Exemplo 2: Obtendo todas as regiões cadastradas na tabela Region do BD Northwind


using (NorthwindEntities contexto = new NorthwindEntities())
{
   var dados = from regioes in contexto.Region select regioes;
   gvDados1.DataSource = dados;
   gvDados1.DataBind();

   foreach (Region reg in dados)
   {
      lblDados2.Text += reg.RegionDescription + " - ";
   }
}

Exemplo 3: Obtendo todas as regiões cadastradas na tabela Region do BD Northwind que terminem com a string “thern”


using (NorthwindEntities contexto = new NorthwindEntities())
{
   var dados = from regioes in contexto.Region
   where regioes.RegionDescription.Trim().EndsWith("thern")
   select regioes;
   gvDados2.DataSource = dados;
   gvDados2.DataBind();
}

Exemplo 4: Idéia de “junção” entre as tabelas Region e Territories do BD Northwind. Reparem que estou buscando todos os territórios que pertençam à região de nome Eastern


using (NorthwindEntities contexto = new NorthwindEntities())
{
   var dados = from territorios in contexto.Territories
   where territorios.Region.RegionDescription.Equals("Eastern")
   orderby territorios.TerritoryDescription
   select territorios;
   gvDados3.DataSource = dados;
   gvDados3.DataBind();
}

O site 101 LINQ Samples disponibiliza vários outros exemplos sobre consultas através do LINQ.

Agradecimento ao André Menegassi pelas dicas.

Posts relacionados:
1. ADO.NET Entity Framework – Introdução + Exemplo prático
2. Operações CRUD com Entity Framework

Um grande abraço,
Eduardo Henrique Rizo

[twitter-follow screen_name='eduardorizo' show_count='yes']

Marcado com: , , , , , , ,
3 comentários sobre “LINQ e Entity Framework
  1. Leonardo disse:

    muito bom…é possivel gerar um formulário pronto direto da tabela com todos os campos? acho que isso no Windows Form é possivel, e na Web, tem alguma maneira de fazer telas de cadastro mais rapido (no sentido de nao precisar criar os elementos e sim alguma ferramenta/propriedade do Entity ja criar).

3 Pings/Trackbacks para "LINQ e Entity Framework"
  1. […] 1. LINQ e Entity Framework 2. Operações CRUD com Entity Framework 3. ADO.NET Entity Framework – Introdução + Exemplo prático […]

  2. […] LINQ, Entity Framework e Tipos Anônimos 2. LINQ e Entity Framework 3. Operações CRUD com Entity Framework 4. ADO.NET Entity Framework – Introdução + Exemplo […]

  3. […] LINQ e Entity Framework Follow @eduardorizo Compartilhe:EmailPrintTwitterFacebookGostar disso:GostoSeja o primeiro a gostar disso post. CategoriasASP.NET, Entity Framework, LINQ Tags:ADO.NET Entity Framework, anonymous type, Entity Framework, framework.net, LINQ, tipos anonimos Comentários (0) Trackbacks (0) Deixe um comentário Trackback […]

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*