Partilhar via


Consultas LINQ to SQL

Você define consultas LINQ to SQL usando a mesma sintaxe que faria no LINQ. A única diferença é que os objetos referenciados em suas consultas são mapeados para elementos em um banco de dados. Para obter mais informações, consulte Introdução às consultas LINQ (C#).

O LINQ to SQL traduz as consultas que você escreve em consultas SQL equivalentes e as envia para o servidor para processamento. Mais especificamente, seu aplicativo usa a API LINQ to SQL para solicitar a execução da consulta. Em seguida, o provedor LINQ to SQL transforma a consulta em texto SQL e delega a execução ao provedor ADO. O provedor ADO retorna resultados de consulta como um DataReaderarquivo . O provedor LINQ to SQL traduz os resultados do ADO para uma IQueryable coleção de objetos de usuário.

Nota

A maioria dos métodos e operadores em tipos internos do .NET Framework têm traduções diretas para SQL. Aqueles que o LINQ não pode traduzir geram exceções em tempo de execução. Para obter mais informações, consulte Mapeamento de tipo SQL-CLR.

A tabela a seguir mostra as semelhanças e diferenças entre itens de consulta LINQ e LINQ to SQL.

Item Consulta LINQ Consulta LINQ to SQL
Tipo de retorno da variável local que contém a consulta (para consultas que retornam sequências) Genéricos IEnumerable Genéricos IQueryable
Especificando a fonte de dados Usa a From cláusula (Visual Basic) ou from (C#) Mesma
Filtragem Utiliza a Where/where cláusula Mesma
Agrupamento Utiliza a Group…By/groupby cláusula Mesma
Seleção (Projeto) Utiliza a Select/select cláusula Mesma
Execução diferida versus execução imediata Consulte Introdução às consultas LINQ (C#) Mesma
Implementação de junções Utiliza a Join/join cláusula Pode usar a Join/join cláusula, mas usa o AssociationAttribute atributo de forma mais eficaz. Para obter mais informações, consulte Consultando entre relacionamentos.
Execução remota versus local Para obter mais informações, consulte Execução remota versus execução local.
Streaming versus consulta em cache Não aplicável em um cenário de memória local

Consulte também