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

Anúncios

Coordenador de Internet da Universidade do Oeste Paulista (Unoeste) e professor universitário de disciplinas relacionadas ao desenvolvimento de sistemas para Web, gerenciamento de servidores, serviços e redes.

Marcado com: , , , , , , ,
Publicado em ASP.NET, Desenvolvimento Web, Entity Framework, LINQ, Microsoft, SQL Server
6 comentários em “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).

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

  3. […] 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 […]

  4. […] 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 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

Sorocaba e Região
Prestadora de serviços RIZZO GS - Sorocaba/SP

Serviços de limpeza, conservação, recepção, copa, portaria, vigia, zeladoria, jardim, elétrica, hidráulica, pintura, etc.

Contato: (15) 3357-4263 / (15) 3357-4502 - contato@rizzogs.com.br

Website: http://www.rizzogs.com.br

%d blogueiros gostam disto: