Introdução à consulta integrada de idiomas

LINQ é abreviado como Consulta Integrada ao Idioma. Estabelecido no .NET 3.5 e no Visual Studio 2008, o principal conceito do LINQ é fornecer o recurso para linguagens .NET (como C #, VB.NET etc.) para criar consultas para recuperar dados da fonte de dados. Para recuperar os dados de vários formatos e fontes em C # e VB.NET, sua sintaxe de consulta uniforme. Elimina a variação entre bancos de dados e linguagens de programação, porque se integrou ao C # / VB e também forneceu essa interface de consulta distinta para vários tipos de fontes de dados. Ele permite o uso de uma abordagem orientada a objetos no conjunto de resultados; as consultas resultantes retornam resultados como objetos.

A diferença entre SQL e LINQ é que onde (Language Integrated Query) é uma sintaxe de consulta estruturada que VB.NET e C # internos incorporam para recuperar os dados de vários tipos de fontes de dados, incluindo MS SQL Server, ADO.Net DataSet, serviço da web, Coleções, XML Docs e outros bancos de dados. Da mesma maneira, SQL é uma Linguagem de Consulta Estruturada que é usada para armazenar e recuperar os dados de um banco de dados.

Definição

O Language Integrated Query propõe uma sintaxe compacta, significativa e compreensível para os dados operacionais. O Language Integrated Query é uma tática e modelo de programação da Microsoft que inclui efetivamente habilidades formais de consulta nas linguagens de programação do Microsoft .NET. É necessário a presença de extensões de idioma específicas. O valor real da Consulta Integrada à Linguagem vem de sua capacidade de aplicar a mesma consulta a um DataSet, Banco de Dados SQL, uma matriz de objetos na memória e também vários tipos de dados.

Compreensão

Ele consiste em uma arquitetura de três camadas, na qual a camada superior possui extensões de idioma e a camada inferior possui fontes de dados que são objetos gerais que implementam interfaces genéricas IEnumerable ou IQueryable. A arquitetura LINQ é mostrada abaixo.

Em C #, o LINQ é apresentado no espaço para nome System. Linq. Ele define vários tipos de métodos e classes que suportam as consultas LINQ. No espaço para nome, ele consiste em

  • Uma classe enumerável contém operadores de consulta padrão que funcionam no objeto execute IEnumerable.
  • A classe Queryable contém operadores de consulta padrão que funcionam no objeto que executa IQueryable.

Os conjuntos principais são:

  • Usando o sistema. Linq: dote com classes e interface para manter consultas LINQ
  • Usando System.Collections.Generic: (LINQ to Objects) Deixe o usuário criar coleções fortemente tipadas que disponibilizam segurança e desempenho de tipo
  • Usando System.Data.Linq: (LINQ to SQL) Oferta com a funcionalidade de usar corretamente os bancos de dados relacionais
  • Usando System.XML.Linq: (LINQ to XML) Apresenta a funcionalidade para o direito de usar documentos XML usando LINQ.
  • Usando System.Data.Linq.Mapping: atribuída uma classe como uma entidade conectada a um banco de dados.

Como o LINQ facilita o trabalho?

Ao trabalhar com o LINQ, é tão fácil porque a consulta integrada ao idioma fornece uma abordagem de consulta integrada ao idioma e baseada em objeto. Usando a consulta integrada à linguagem, podemos consultar XML, banco de dados e também coleções. Ele verificará a sintaxe durante o tempo de compilação. Os códigos de escrita em Consulta Integrada à Linguagem são mais rápidos, pois esse tempo de desenvolvimento também é reduzido automaticamente. Para entender por que devemos usar a consulta integrada à linguagem, vamos ver alguns exemplos. Suponha que você queira localizar a lista de jovens estudantes de uma variedade de objetos de Alunos.
Antes do C # 2.0, tínhamos que usar um loop 'for each' ou 'for' para percorrer a coleção e descobrir um objeto exato. Por exemplo, para escrever o código para listar todos os objetos de Alunos de uma matriz de Alunos em que o SAge esteja entre 12 e 20.

Programa de exemplo para usar o loop For

class StudentDetails
(
public int SID ( get; set; )
public String SName ( get; set; )
public int SAge ( get; set; )
)
class Program
(
static void Main(string() args)
(
StudentDetails () sArray = (
new StudentDetails () ( SID = 1, SName = "Rio", SAge = 18 ),
new StudentDetails () ( SID = 2, SName = "Rock", SAge = 21 ),
new StudentDetails () ( SID = 3, SName = "Smith", SAge = 25 ),
new StudentDetails () ( SID = 4, SName = "Jack", SAge = 20 ),
new StudentDetails () ( SID = 5, SName = "Remo", SAge = 31 ),
new StudentDetails () ( SID = 6, SName = "Andre", SAge = 17 ),
new StudentDetails () ( SID = 7, SName = "Don", SAge = 19 ),
);
StudentDetails () students = new StudentDetails (10);
int i = 0;
foreach (StudentDetails std in sArray)
(
if (std.SAge > 12 && std.SAge < 20)
(
students(i) = std;
i++;
)
)
)
)

O uso do loop for é oneroso, não é gerenciável o tempo todo ao encontrar vários números de resultados e também não é legível. Portanto, a equipe segue a próxima versão do C # 3.0 que foi introduzida, usando essa abordagem pode resolver esses tipos de problemas, porque a consulta integrada à linguagem é o alicerce dos elementos de consulta para vários tipos de coleção e também obtém os resultados com uma única instrução .
Vamos ver o exemplo abaixo, que explica que a consulta LINQ da expressão lambda ajuda a descobrir um aluno específico da coleção de listas.

Programa de amostra

class ProgramLINQ
(
static void Main(string() args)
(
StudentDetails () sArray = (
new StudentDetails () ( SID = 1, SName = "Rio", SAge = 18 ),
new StudentDetails () ( SID = 2, SName = "Rock", SAge = 21 ),
new StudentDetails () ( SID = 3, SName = "Smith", SAge = 25 ),
new StudentDetails () ( SID = 4, SName = "Jack", SAge = 20 ),
new StudentDetails () ( SID = 5, SName = "Remo", SAge = 31 ),
new StudentDetails () ( SID = 6, SName = "Andre", SAge = 17 ),
new StudentDetails () ( SID = 7, SName = "Don", SAge = 19 ),
);
// to find young students in the list
StudentDetails () tStudents = sArray.Where(s => s. SAge > 12 && s. SAge < 20).ToArray();
// to find first student whose name is Smith
StudentDetails f_Sname = sArray.Where(s => s. SName == "Smith ").FirstOrDefault();
// to find student whose StudentID is 5
StudentDetails f_SID = sArray.Where(s => s. SID == 5).FirstOrDefault();
)
)

Assim, a Consulta Integrada à Linguagem torna o código adicionalmente compactado e compreensível e também pode ser usado para consultar várias fontes de dados.

Qual é o uso do LINQ

  • Idioma conhecido
  • Menos codificação
  • Código legível
  • a técnica idêntica de consultar várias fontes de dados
  • Proteção de consultas em tempo de compilação
  • Manutenção Intelli-Sense
  • Determinando dados

Trabalhando com LINQ

Fontes de dados ativadas para consulta integrada ao idioma. os tipos de LINQ são mencionados abaixo em breve.

  • LINQ para objetos
  • LINQ para XML (XLINQ)
  • LINQ para conjunto de dados
  • LINQ para SQL (DLINQ)
  • Linq para entidades

1. LINQ to Object

O LINQ to Objects apresenta o tratamento de qualquer consulta LINQ que suporte IEnumerable para acessar objetos e coleções de dados na memória. a variável de retorno no Linq para objetos será do tipo IEnumerable.

2. LINQ para XML (XLinq)

LINQ to XML está disponível no espaço para nome chamado System.Xml.Linq. Para consultar fontes de dados XML, usamos o LINQ to XML. Além disso, o Linq to XML faz o melhor uso das funcionalidades da estrutura .NET, como verificação em tempo de compilação, depuração, digitação forte e assim por diante. ao carregar documentos XML na memória é simples e fácil na modificação e consulta de documentos.

3. LINQ para conjunto de dados

LINQ to DataSet que mantém consultas usando tabelas de dados ADO.NET e conjuntos de dados. quando os dados forem consolidados de várias fontes de dados, usaremos o LINQ to Dataset para consultas.

4. LINQ para SQL

O LINQ to SQL também é chamado DLINQ e faz parte da Consulta Integrada à Linguagem; pelo uso de expressões LINQ, permite consultar dados no banco de dados do SQL Server.

5. LINQ para Entidades

No LINQ to Entities usando C # É uma maneira fácil e simples de consultar as entidades. uma Consulta é uma expressão usada para obter os dados do armazenamento de dados. usando esse DBContext no EF 6 ou DBContext na estrutura de entidade do EF Core, a consulta ao banco de dados está concluída.

Vantagens

Consulta integrada ao idioma oferece uma enorme quantidade de vantagens; Algumas das vantagens são dadas abaixo.

  • Isso ajuda a descobrir erros durante o tempo de design devido ao realce da sintaxe.
  • Isso ajuda a escrever consultas com mais precisão.
  • Na Consulta Integrada ao Idioma, o tempo de desenvolvimento será reduzido porque a escrita do código é muito mais rápida e fácil na Consulta Integrada ao Idioma.
  • É integrado à linguagem C # devido a isso facilita a depuração.
  • Ele tem seus recursos hierárquicos devido ao fato de que a visualização do relacionamento entre duas tabelas é mais fácil e leva menos tempo para criar consultas usando várias junções.
  • O Query Integrated Language suporta uma transformação mais fácil para converter de um tipo de dados para outro, como a transformação de dados SQL para XML.
  • Ao usar o LINQ, os desenvolvedores podem facilmente manter e compreender por causa de seu código mais legível.
  • No LINQ, haverá uma sintaxe uniforme para consultar várias fontes de dados.
  • Durante o tempo de compilação, o LINQ fornece verificação de tipo de objetos.
  • Sua suporta a modelagem de dados, podemos recuperar dados em várias formas.

Por que devemos usar o LINQ?

Vamos ver por que o Language Integrated Query é desenvolvido ou por que estamos usando o LINQ, há vários pontos para definir por que usamos o Language Integrated Query.

  • Ao comparar com o SQL, o LINQ é fácil de trabalhar, uma linguagem de alto nível e bem orientada.
  • O principal princípio por trás da criação do LINQ é que, anteriormente, no C # 3.0, para encontrar um objeto específico que estávamos usando para cada delegado for loop, usando todos esses, havia uma grande desvantagem, pois para descobrir um objeto, precisamos codificar várias linhas de codificação que cria um programa menos legível e também mais demorado. Para superar esses problemas, o LINQ foi introduzido, porque a consulta integrada à linguagem fará os programas / codificação em um número muito menor de linhas e também o código fica mais legível e, uma vez padronizado, podemos usar o mesmo código em vários outros programas.
  • Durante o tempo de execução, ajuda a encontrar os erros para que possamos remover ou corrigir os erros com facilidade e também fornece verificação em tempo de compilação.
  • De maneira eficaz, o LINQ nos fornece uma nova direção para resolver esses problemas; e também podemos usar a consulta integrada de linguagem com coleções e array C #.
  • Mantém em uma expressão de consulta, métodos de extensão, variáveis ​​implícitas de tipo, expressões lambda, objetos e coleções.
  • Na Consulta Integrada ao Idioma, não há necessidade de aprender vários tipos de idiomas, pois uma consulta distinta pode funcionar com qualquer tipo de banco de dados. E também suporta qualquer tipo de fonte de dados, como objetos, XML, Entidades, SQL e assim por diante.

Escopo de consulta integrada ao idioma

Ele é criado para carregar a lacuna entre o .NET convencional, que apresenta uma abordagem orientada a objetos e uma abordagem de digitação forte. O Language Integrated Query introduziu um modelo de fácil aprendizado para modificar e consultar dados e também suporta fontes de dados que incluem XML, estruturas de dados na memória e dados relacionais. Consulta integrada à linguagem integrada a uma abordagem orientada a objetos e relacional. É uma expressão fortemente tipada. Expressões fortemente tipadas garantem que o valor do tipo correto no tempo de compilação e durante o tempo de execução evite que os erros sejam encontrados quando codificados.

Por que precisamos do LINQ?

Antes, no LINQ, era necessário aprender SQL, C # e várias APIs que se ligam para desenvolver um aplicativo inteiro. Para que a linguagem de programação e as fontes de dados enfrentem alguns problemas, a codificação também dificulta. Vamos ver um exemplo de várias técnicas usadas pelos programadores ao consultar dados antes da chegada da Consulta Integrada ao Idioma.

Programa de amostra

SqlConnection conn= new SqlConnection(connString);
SqlConnection.Open();
System.Data.SqlClient.SqlCommand cmd=ne SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "Select * from Employee";
return cmd.ExecuteReader (CommandBehavior.CloseConnection) ;
By using LINQ the above same query can be return in simple easy and readable form whereas the consuming time also very less.
Northwind db_ = new Northwind(@"C:\Data\Northwind.mdf");
var query_result = from e in db.Employee select e;

Como esta tecnologia o ajudará no crescimento da carreira?

É um mecanismo de pesquisa que ajuda a otimizar os fluxos de trabalho de dados. Ajudará no crescimento da carreira de uma maneira bem orientada. Ele suporta toda a equipe, fácil de trabalhar e reduz o retrabalho, além de manter o projeto dentro do prazo e do orçamento estimado.

Conclusão

Você leu bem como o LINQ varia e melhora o ADO.NET. Além disso, ajuda na economia de tempo. Por fim, você sabe como as consultas integradas ao idioma podem ser usadas para vários tipos de fontes de dados. Neste artigo, aprendemos sobre o processo de trabalho da consulta integrada à linguagem e como usá-la. Espero que este artigo tenha ajudado você.

Artigos recomendados

Este é um guia para o que é o LINQ ?. Aqui discutimos a definição, vantagens e uso junto com o programa e o escopo de amostra. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. Ferramentas GUI do MongoDB
  2. O que é o Dropbox?
  3. O que é o Laravel?
  4. O que é StringBuilder em C #