Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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#).
LINQ to SQL converte as consultas que você grava 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. O provedor LINQ to SQL transforma a consulta em texto SQL e delega a execução para o provedor do ADO. O provedor do ADO retorna os resultados da consulta como um DataReader. O provedor LINQ to SQL converte os resultados do ADO em uma IQueryable coleção de objetos de usuário.
Observação
A maioria dos métodos e operadores em tipos internos do .NET Framework tem traduções diretas para o SQL. Aqueles que o LINQ não pode traduzir geram exceções de runtime. Para obter mais informações, consulte SQL-CLR Mapeamento de Tipo.
A tabela a seguir mostra as semelhanças e diferenças entre os itens de consulta LINQ e LINQ to SQL.
| Elemento | Consulta LINQ | Consulta LINQ to SQL |
|---|---|---|
| Tipo de retorno da variável local que contém a consulta (para consultas que retornam sequências) |
IEnumerablegenérico |
IQueryablegenérico |
| Especificando a fonte de dados | Usa a From cláusula (Visual Basic) ou from (C#) |
Idêntico |
| Filtragem | Usa a Where/where cláusula |
Idêntico |
| Agrupamento | Usa a Group…By/groupby cláusula |
Idêntico |
| Selecione (se projetar) | Usa a Select/select cláusula |
Idêntico |
| Execução adiada versus imediata | Confira a introdução às consultas LINQ (C#) | Idêntico |
| Implementar join | Usa a Join/join cláusula |
Pode usar a Join/join cláusula, mas usa o AssociationAttribute atributo com mais eficiência. Para obter mais informações, consulte Consultar entre relações. |
| Execução remota versus local | Para obter mais informações, consulte Remote vs. Local Execution. | |
| Streaming versus consulta em cache | Não aplicável em um cenário de memória local |