Consultas no LINQ to Entities
Uma consulta é uma expressão que recupera dados de uma fonte de dados. As consultas geralmente são expressas em uma linguagem de consulta especializada, como SQL para bancos de dados relacionais e XQuery para XML. Portanto, os desenvolvedores tiveram que aprender uma nova linguagem de consulta para cada tipo de fonte de dados ou formato de dados que consultam. O LINQ (Language-Integrated Query) oferece um modelo mais simples e consistente para trabalhar com dados em vários tipos de fontes e formatos de dados. Em uma consulta LINQ, você sempre trabalha com objetos de programação.
Uma operação de consulta LINQ consiste em três ações: obter a fonte ou fontes de dados, criar a consulta e executá-la.
As fontes de dados que implementam a IEnumerable<T> interface genérica ou a interface genérica podem ser consultadas através do IQueryable<T> LINQ. As instâncias da classe genérica ObjectQuery<T> , que implementa a interface genérica IQueryable<T> , servem como fonte de dados para consultas LINQ to Entities. A ObjectQuery<T> classe generic representa uma consulta que retorna uma coleção de zero ou mais objetos tipados. Você também pode permitir que o compilador infera o tipo de uma entidade usando a palavra-chave var
C# (Dim no Visual Basic).
Na consulta, você especifica exatamente as informações que deseja recuperar da fonte de dados. Uma consulta também pode especificar como essas informações devem ser classificadas, agrupadas e moldadas antes de serem retornadas. No LINQ, uma consulta é armazenada em uma variável. Se a consulta retornar uma sequência de valores, a própria variável de consulta deverá ser um tipo consultável. Essa variável de consulta não executa nenhuma ação e não retorna dados; ele apenas armazena as informações da consulta. Depois de criar uma consulta, você deve executá-la para recuperar quaisquer dados.
Sintaxe de Consulta
As consultas LINQ to Entities podem ser compostas em duas sintaxes diferentes: sintaxe de expressão de consulta e sintaxe de consulta baseada em método. A sintaxe da expressão de consulta é nova em C# 3.0 e Visual Basic 9.0 e consiste em um conjunto de cláusulas escritas em uma sintaxe declarativa semelhante a Transact-SQL ou XQuery. No entanto, o .NET Framework common language runtime (CLR) não pode ler a sintaxe da expressão de consulta em si. Portanto, em tempo de compilação, as expressões de consulta são traduzidas para algo que o CLR entende: chamadas de método. Esses métodos são conhecidos como operadores de consulta padrão. Como desenvolvedor, você tem a opção de chamá-los diretamente usando a sintaxe do método, em vez de usar a sintaxe da consulta. Para obter mais informações, consulte Sintaxe de consulta e sintaxe de método no LINQ.
Sintaxe da expressão de consulta
As expressões de consulta são uma sintaxe de consulta declarativa. Essa sintaxe permite que um desenvolvedor escreva consultas em uma linguagem de alto nível formatada de forma semelhante ao Transact-SQL. Usando a sintaxe de expressão de consulta, você pode executar até mesmo operações complexas de filtragem, ordenação e agrupamento em fontes de dados com código mínimo. Para obter mais informações, consulte Operações de consulta básicas (Visual Basic). Para obter exemplos que demonstram como usar a sintaxe da expressão de consulta, consulte os seguintes tópicos:
Exemplos de sintaxe de expressão de consulta: operadores de agregação
Exemplos de sintaxe de expressão de consulta: particionamento
Exemplos de sintaxe de expressão de consulta: operadores de junção
Exemplos de sintaxe de expressão de consulta: operadores de elemento
Exemplos de sintaxe de expressão de consulta: navegando em relações
Sintaxe de consulta baseada em método
Outra maneira de compor consultas LINQ to Entities é usando consultas baseadas em método. A sintaxe de consulta baseada em método é uma sequência de chamadas diretas de método para métodos de operador LINQ, passando expressões lambda como parâmetros. Para obter mais informações, consulte Expressões do Lambda. Para obter exemplos que demonstram como usar a sintaxe baseada em método, consulte os seguintes tópicos:
Exemplos de sintaxe de consulta baseada em método: filtragem
Exemplos de sintaxe de consulta baseada em método: ordenação
Exemplos de sintaxe de consulta baseada em método: operadores de agregação
Exemplos de sintaxe de consulta baseada em método: particionamento
Exemplos de sintaxe de consulta baseada em método: conversão
Exemplos de sintaxe de consulta baseada em método: operadores de junção
Exemplos de sintaxe de consulta baseada em método: operadores de elemento
Exemplos de sintaxe de consulta baseada em método: agrupamento
Exemplos de sintaxe de consulta baseada em método: navegando em relacionamentos