Que es LINQ y que ventajas nos aporta

logo-linq

El artículo de hoy lo vamos a dedicar a aprender sobre qué es LinQ, dentro del ecosistema de desarrollo de Microsoft. Si tu intención es convertirte en un master de C# y ASP.NET Core 3, dejo el enlace a nuestro Curso de C# 8 Y ASP.NET CORE 3 MVC

¿Qué es LINQ?

LINQ (Language Integrated Query) es una sintaxis de consulta uniforme en C # y VB.NET utilizada para guardar y recuperar datos de diferentes fuentes. Está integrado en C # o VB, lo que elimina la falta de correspondencia entre los lenguajes de programación y las bases de datos, y proporciona una interfaz de consulta única para diferentes tipos de fuentes de datos.
Por ejemplo, SQL es un lenguaje de consulta estructurado que se usa para guardar y recuperar datos de una base de datos. De la misma manera, LINQ es una sintaxis de consulta estructurada construida en C # y VB.NET utilizada para guardar y recuperar datos de diferentes tipos de fuentes de datos, como una colección de objetos, una base de datos SQL server, XML, MySQL o un servicio web entre otros.

LINQ siempre trabaja con objetos para que pueda usar los mismos patrones básicos de codificación para consultar y transformar los datos.

 

linq

 

¿Por qué LINQ?

Para entender por qué deberíamos usar LINQ, veamos un ejemplo. Supongamos que quiere encontrar una lista de estudiantes adolescentes de una variedad de objetos de Estudiante.
Antes de C# 2.0, teníamos que usar un bucle ‘foreach’ o ‘for’ para recorrer la colección y encontrar un objeto en particular. El uso del bucle for es engorroso, no se puede mantener y leer adecuadamente, por eso el equipo de C# sintió que necesitaban hacer el código más compacto y legible, entonces introdujeron el método de extensión, la expresión lambda, el árbol de expresiones, el tipo anónimo y la expresión de consulta, naciendo LINQ en la versión de C# 3.0.

El siguiente ejemplo muestra cómo puede usar la consulta LINQ con la expresión lambda para encontrar un alumno (s) en particular de la colección de estudiantes.

 

codigo-linq

 

Como puede ver en el ejemplo anterior, especificamos diferentes criterios utilizando el operador LINQ y la expresión lambda en una sola instrucción. Por lo tanto, LINQ hace que el código sea más compacto y legible, y también se puede usar para consultar diferentes fuentes de datos. Por ejemplo, si tiene una tabla de estudiantes en una base de datos en lugar de una matriz de objetos estudiantes como se indicó anteriormente.

Ventajas de LINQ:

– Lenguaje familiar: los desarrolladores no tienen que aprender un nuevo lenguaje de consulta para cada tipo de fuente de datos o formato de datos.
– Menos codificación: reduce la cantidad de código que se debe escribir en comparación con un enfoque más tradicional.
– Código legible: LINQ hace que el código sea más legible para que otros desarrolladores puedan entenderlo y mantenerlo fácilmente.
– Forma estandarizada de consultar múltiples fuentes de datos: la misma sintaxis LINQ se puede utilizar para consultar múltiples fuentes de datos.
– Compilar la seguridad del tiempo de las consultas: proporciona verificación de tipos de objetos en tiempo de compilación.
– Soporte IntelliSense: LINQ proporciona IntelliSense para colecciones genéricas.
– Dar forma a los datos: puede recuperar datos en diferentes formas.

API DE LINQ

LINQ no es más que la colección de métodos de extensión para las clases que implementan la interfaz IEnumerable y IQueryable. El espacio de nombres System.Linq incluye las clases y las interfaces necesarias para LINQ. Enumerable y Queryable son dos clases estáticas principales de LINQ API que contienen métodos de extensión.
El espacio de nombres System.Linq se incluye por defecto cuando agrega una nueva clase en Visual Studio, de modo que puede usar LINQ de forma predeterminada.

Enumerable:
La clase enumerable incluye métodos de extensión para las clases que implementan la interfaz IEnumerable<T>, esto incluye todos los tipos de colección como List<T>, Dictionary<T>, SortedList<T>, Queue<T>, HashSet<T>, LinkedList<T> etc.

Queryable:
La clase Queryable incluye métodos de extensión para las clases que implementan la interfaz IQueryable<T>. IQueryable<T> se utiliza para proporcionar capacidades de consulta contra una fuente de datos específica donde se conoce el tipo de datos. Por ejemplo, Entity Framework implementa la interfaz IQueryable<T> para admitir consultas LINQ con una base de datos subyacente como SQL Server.
Además, hay API disponibles para acceder a datos de terceros; por ejemplo, LINQ to Amazon ofrece la posibilidad de utilizar LINQ con los servicios web de Amazon para buscar libros y otros elementos mediante la implementación de la interfaz IQueryable.

Vamos a hacer un pequeño resumen de lo visto hasta ahora

1. Use el espacio de nombres System.Linq para usar LINQ.
2. La API de LINQ incluye dos clases estáticas principales Enumerable y Queryable, para el almacenamiento de la información que tratamos con LinQ.
3. La clase Enumerable incluye métodos de extensión para las clases que implementan la interfaz IEnumerable<T>.
4. El tipo de colecciones IEnumerable<T> son colecciones en la memoria como List, Dictionary, SortedList, Queue, HashSet, LinkedList.
5. La clase Queryable estática incluye métodos de extensión para las clases que implementan la interfaz IQueryable<T>.
6. El proveedor de consultas remotas implementa IQueryable<T>, por ejemplo Linq-to-SQL, LINQ-to-Amazon, etc.

 

Espero que este pequeño tutorial sobre LINQ te ayude, si te ha gustado este artículo compártelo por favor, nos ayudas mucho!

Un saludo y nos vemos pronto

<a href=”https://www.linkedin.com/in/jesus-jimenez-madrid/”>Jesús Jiménez</a>

  • Share:

Deja un comentario

Your email address will not be published.

    Enviar un mensaje




    Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

    ACEPTAR
    Aviso de cookies
    Call Now Button