Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Una consulta es una expresión que recupera datos de un origen de datos. Las consultas normalmente se expresan en un lenguaje de consulta especializado, como SQL para bases de datos relacionales y XQuery para XML. Por lo tanto, los desarrolladores han tenido que aprender un nuevo lenguaje de consulta para cada tipo de origen de datos o formato de datos que consultan. Language-Integrated Query (LINQ) ofrece un modelo más sencillo y coherente para trabajar con datos en varios tipos de orígenes de datos y formatos. En una consulta LINQ, siempre se trabaja con objetos de programación.
Una operación de consulta LINQ consta de tres acciones: obtener el origen de datos o los orígenes, crear la consulta y ejecutar la consulta.
Los orígenes de datos que implementan la IEnumerable<T> interfaz genérica o la IQueryable<T> interfaz genérica se pueden consultar mediante LINQ. Las instancias de la clase genérica ObjectQuery<T> , que implementa la interfaz genérica IQueryable<T> , sirven como origen de datos para las consultas LINQ to Entities. La clase ObjectQuery<T> genérica representa una consulta que devuelve una colección de cero o más objetos con tipo. También puede permitir que el compilador infiera el tipo de una entidad mediante la palabra clave var
de C# (Dim en Visual Basic).
En la consulta, especifique exactamente la información que desea recuperar del origen de datos. Una consulta también puede especificar cómo se debe ordenar, agrupar y dar forma a esa información antes de que se devuelva. En LINQ, una consulta se almacena en una variable. Si la consulta devuelve una secuencia de valores, la propia variable de consulta debe ser un tipo consultable. Esta variable de consulta no realiza ninguna acción y no devuelve ningún dato; solo almacena la información de consulta. Después de crear una consulta, debe ejecutar esa consulta para recuperar los datos.
Sintaxis de la consulta
Las consultas LINQ to Entities se pueden componer en dos sintaxis diferentes: sintaxis de expresiones de consulta y sintaxis de consulta basada en métodos. La sintaxis de expresiones de consulta es nueva en C# 3.0 y Visual Basic 9.0, y consta de un conjunto de cláusulas escritas en una sintaxis declarativa similar a Transact-SQL o XQuery. Sin embargo, Common Language Runtime (CLR) de .NET Framework no puede leer la propia sintaxis de la expresión de consulta. Por lo tanto, en tiempo de compilación, las expresiones de consulta se traducen a algo que CLR entiende: llamadas de método. Estos métodos se conocen como operadores de consulta estándar. Como desarrollador, tiene la opción de llamarlos directamente mediante la sintaxis del método, en lugar de usar la sintaxis de consulta. Para obtener más información, vea Sintaxis de consulta y sintaxis del método en LINQ.
Sintaxis de expresiones de consulta
Las expresiones de consulta son una sintaxis de consulta declarativa. Esta sintaxis permite al desarrollador escribir consultas en un lenguaje de alto nivel con formato similar a Transact-SQL. Mediante la sintaxis de expresiones de consulta, puede realizar incluso operaciones complejas de filtrado, ordenación y agrupación en orígenes de datos con código mínimo. Para obtener más información, vea Operaciones básicas de consulta (Visual Basic). Para ver ejemplos que muestran cómo usar la sintaxis de la expresión de consulta, consulte los temas siguientes:
Ejemplos de sintaxis de expresiones de consulta: operadores agregados
Ejemplos de sintaxis de expresiones de consulta: creación de particiones
Ejemplos de sintaxis de expresiones de consulta: operadores de combinación
Ejemplos de sintaxis de expresiones de consulta: operadores de elementos
Ejemplos de sintaxis de expresiones de consulta: Navegar por relaciones
Sintaxis de consulta para Method-Based
Otra manera de componer consultas LINQ to Entities es mediante consultas basadas en métodos. La sintaxis de consulta basada en métodos es una secuencia de llamadas de método directo a métodos de operador LINQ, pasando expresiones lambda como parámetros. Para obtener más información, vea Expresiones lambda. Para ver ejemplos que muestran cómo usar la sintaxis basada en métodos, consulte los temas siguientes:
Ejemplos de sintaxis de consulta deMethod-Based: operadores agregados
Ejemplos de sintaxis de consulta deMethod-Based: creación de particiones
Ejemplos de sintaxis de consulta basada en métodos: operadores de unión
Ejemplos de sintaxis de consulta deMethod-Based: operadores de elementos
Ejemplos de sintaxis de consulta basada en métodos: navegar por relaciones