Partilhar via


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:

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:

Consulte também