¿Qué es Consulta en LINQ?

Una consulta es una expresión que se utiliza para recuperar datos del origen de datos. Generalmente, las consultas se expresan en algún lenguaje especializado. Se desarrollan diferentes tipos de lenguajes para acceder a los diferentes tipos de fuentes de datos como SQL para una base de datos relacional, XQuery para XML, etc. Entonces, cada vez que el desarrollador necesita aprender diferentes tipos de lenguajes para diferentes tipos de fuentes de datos, esta situación lleva al desarrollador a desarrollar un lenguaje a través del cual pueda acceder a cualquier tipo de fuente de datos con la ayuda de un solo lenguaje. 
Por lo tanto, este requisito lo cumple la consulta LINQ. Al usar la consulta LINQ, puede acceder a cualquier tipo de fuente de datos, como documentos XML, bases de datos SQL, conjuntos de datos ADO.NET, etc. proporcionados por el proveedor LINQ. En la consulta LINQ, la consulta siempre devuelve el resultado como un objeto, lo que le permite usar el enfoque orientado a objetos en el resultado y no preocuparse por transformar diferentes formatos de datos en un objeto. 
 

Ejemplo:
 

C#

// C# program to demonstrate the 
// Simple query example
using System;
using System.Linq;
  
class GFG {
  
    // Main Method
    static public void Main()
    {
  
        // Creating data source
        string[] language = {"C#", "VB", "Java", "C++", 
                        "C", "Perl", "Ruby", "Python"};
  
        // Creating a query to get the 
        // value from the data source
        var result = from lang in language
                     where lang.Contains('C')
                     select lang;
  
        // display the result of the query
        foreach(var l in result)
        {
            Console.WriteLine(l);
        }
    }
}

Producción:
 

C#
C++
C

En el ejemplo anterior, la consulta LINQ contiene tres acciones diferentes :
 

  1. Obtener fuente de datos: en el ejemplo anterior, la fuente de datos es una array.
    string[]language = {"C#", "VB", "Java", "C++", "C", "Perl", "Ruby", "Python"};

    Que admiten implícitamente la interfaz genérica IEnumerable<T>. En la consulta LINQ, es una regla básica que el origen de datos de cualquier objeto debe admitir la interfaz IEnumerable<T> o la interfaz que hereda de la interfaz IEnumerable<T>.

  2. Crear consulta: ahora el siguiente paso es crear una consulta. Con la ayuda de la consulta, puede obtener la información de la fuente de datos. La consulta se almacena en la variable de consulta y que se inicializa con la expresión de consulta. La expresión de consulta contiene la operación que desea realizar en el origen de datos; por lo general, la expresión de consulta contiene tres cláusulas, es decir, from, where y select. La cláusula from se usa para especificar la fuente de datos, donde la cláusula aplica el filtro y la cláusula select proporciona el tipo de los elementos devueltos. 
    Ejemplo:
    var result = from lang in language
                        where lang.Contains('C')
                        select lang;

    Aquí da como resultado la variable de consulta que se inicializa con una expresión de consulta.
    Nota: La variable de consulta en sí no realiza ninguna operación. Solo solía almacenar el resultado de la expresión de consulta y se usa cuando se ejecuta la consulta.

  3. Ejecutar consulta: la variable de consulta almacena el resultado de la expresión de consulta. Pero la ejecución de la consulta tiene lugar cuando itera sobre la variable de consulta utilizando el bucle foreach para mostrar el resultado de la consulta. Cuando usa el bucle foreach para ejecutar la consulta, se conoce como ejecución diferida . En el ejemplo anterior, usamos la ejecución diferida.
    foreach(var l in result){
    
            Console.WriteLine(l);
        }

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *