Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 DataReader. O provedor LINQ to SQL traduz os resultados do ADO para uma IQueryable coleção de objetos de usuário.
Observação
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 consegue 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 itens de consulta LINQ e LINQ to SQL.
| Iteme | 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érico IEnumerable |
Genérico 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 (Projeção) | 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 mais informações, consulte Consultas 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 |