O que é uma consulta integrada do idioma?
Consulta integrada da linguagem (LINQ) fornece a capacidade de integrar perfeitamente a sintaxe de consulta declarativa em linguagens imperativas, principalmente C# e VB.NET. O desenvolvimento do LINQ resolveu os problemas que os desenvolvedores trabalham em ambientes orientados a objetos encontrados ao executar consultas. Foi introduzido como parte do Microsoft® .NET Framework Versão 3.5 em novembro de 2007 e no codinome do Visual Studio® "Orcas". Os desenvolvedores que escrevem nesses idiomas tiveram que incorporar o SQL ou o XQuery, respectivamente, como strings e mapear manualmente os dados resultantes para objetos .NET. Strings e mapeamentos de consulta incorporados não puderam ser validados pelos compiladores .NET, permitindo que erros em potencial sejam descobertos no tempo de execução.JECTS. Normalmente, o desenvolvedor itera em toda uma coleção de fontes, construindo novas coleções de resultados com base nos critérios de pesquisa. O desenvolvedor também pode transformar os dados durante a criação das coleções de resultados. Essa abordagem foi complicada; Uma consulta simples selecionada escrita em C# ou VB exigiria pelo menos cinco linhas de código, enquanto a mesma consulta exigiria uma linha de código em uma linguagem de consulta.
Os desafios da consulta em um ambiente orientado a objetos deram à Microsoft o ímpeto para criar o LINQ. O LINQ fornece uma sintaxe de consulta remanescente do SQL a ser usado em linha com C# ou VB, completo com verificação de tipo estático. Ao consultar as coleções .NET, em vez de usar loops aninhados, os desenvolvedores podem usar a sintaxe do LINQ para selecionar itens e transformar dados. Entre outras vantagens, isso resulta em menos linhas de código em comparação com a sintaxe puramente orientada a objetos.
Ao acessar o Externo DFontes da ATA, LINQ e componentes de suporte removem a necessidade de idiomas de consulta incorporados e mapeamentos de dados dentro de um idioma .NET. Para executar o mapeamento de dados, o LINQ depende de componentes chamados provedores de LINQ. Linq-to-Objects é o provedor de ações que permite que o LINQ acesse as coleções .NET. Da mesma forma, existem provedores para acessar bancos de dados relacionais e documentos XML. A maioria desses fornecedores são componentes de terceiros não incluídos na estrutura .NET. Independentemente do provedor usado, todas as consultas usam a mesma sintaxe do LINQ.
Entre a sintaxe de consulta integrada do idioma e os provedores, há uma biblioteca de operadores de consulta adicionada à estrutura .NET como parte das instalações do LINQ. Esses operadores executam tarefas como filtragem, ordenação, operações da teoria de conjuntos e agregação. Como esses operadores fazem parte da estrutura .NET, eles também podem ser usados sem LINQ se o desenvolvedor assim escolher.