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 em tempo de execução. 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) |
IEnumerable genérico |
IQueryable gené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 |