Consultas en LINQ to Entities
Una consulta es una expresión que recupera datos de un origen de datos. Las consultas se suelen expresar en un lenguaje de consulta especializado, como SQL para bases de datos relacionales y XQuery para XML. Por lo tanto, los programadores han tenido que aprender un lenguaje de consultas nuevo para cada tipo de origen de datos o formato de datos que consultan. Language-Integrated Query (LINQ) ofrece un modelo coherente y más sencillo para trabajar con los datos de varios formatos y orígenes de datos. En una consulta de LINQ siempre se trabaja con objetos de programación.
Una operación de consulta de LINQ consta de tres acciones: obtener el origen o los orígenes de datos, crear la consulta y ejecutar la consulta.
Los orígenes de datos que implementan las interfaces genéricas IEnumerable o IQueryable pueden consultarse a través de LINQ. Las instancias de la clase genérica ObjectQuery, que implementa la interfaz genérica IQueryable, actúan como origen de datos para las consultas LINQ to Entities . La clase ObjectQuery genérica representa una consulta que devuelve una colección de cero o más objetos con tipo. También puede hacer que el compilador deduzca el tipo de una entidad utilizando la palabra clave var de C# (Dim en Visual Basic).
En la consulta se especifica exactamente la información que se desea recuperar del origen de datos. Una consulta también puede especificar cómo se debe ordenar, agrupar y conformar 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 la consulta debe ser de un tipo que se pueda consultar. Esta variable de consulta no realiza ninguna acción y no devuelve datos; solamente almacena la información de la consulta. Tras crear una consulta debe ejecutarla para recuperar los datos.
Sintaxis de consulta
Las consultas de LINQ to Entities se pueden formular en dos sintaxis diferentes: sintaxis de expresiones de consulta y sintaxis de consultas basadas 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. No obstante, Common Language Runtime (CLR) de .NET Framework no puede leer la sintaxis de expresiones de consulta por sí mismo. Por lo tanto, en tiempo de compilación, las expresiones de consulta se convierten en algo que CLR no comprende: las llamadas a métodos. Esos métodos se conocen como operadores de consulta estándar. Como programador, tiene la opción de llamarlos directamente utilizando la sintaxis de método en lugar de la sintaxis de consulta. Para obtener más información, vea Query Syntax versus Method Syntax.
Sintaxis de expresiones de consulta
Las expresiones de consulta son una sintaxis de consulta declarativa. Esta sintaxis permite a un programador escribir consultas en un lenguaje de alto nivel que tenga un formato similar al de Transact-SQL. Si se utiliza la sintaxis de expresiones de consulta, se pueden realizar incluso operaciones complejas de filtrado, ordenación y agrupamiento en orígenes de datos con código mínimo. Para obtener más información, vea Basic Query Operators. Para obtener ejemplos que muestran cómo utilizar la sintaxis de expresiones de consulta, vea los siguientes temas:
Ejemplos de sintaxis de expresiones de consultas: proyección (LINQ to Entities)
Ejemplos de sintaxis de expresión de consultas: filtrado (LINQ to Entities)
Ejemplos de sintaxis de expresión de consultas: ordenación (LINQ to Entities)
Ejemplos de sintaxis de expresión de consultas: operadores de agregado (LINQ to Entities)
Ejemplos de sintaxis de expresiones de consultas: crear particiones (LINQ to Entities)
Ejemplos de sintaxis de expresiones de consultas: operadores de combinación (LINQ to Entities)
Ejemplos de sintaxis de expresiones de consultas: operadores de elementos (LINQ to Entities)
Ejemplos de sintaxis de expresiones de consultas: agrupamiento (LINQ to Entities)
Ejemplos de sintaxis de expresiones de consultas: navegar por relaciones (LINQ to Entities)
Sintaxis de consultas basadas en métodos
Otra forma de formular consultas de LINQ to Entities es usar las consultas basadas en métodos. La sintaxis de consultas basadas en métodos es una secuencia de llamadas directas a los métodos de operador de LINQ que pasan expresiones lambda como parámetros. Para obtener más información, vea Lambda Expressions. Para obtener ejemplos que muestran cómo utilizar la sintaxis basada en métodos, vea los siguientes temas:
Ejemplos de sintaxis de consulta basada en métodos: proyección (LINQ to Entities)
Ejemplos de sintaxis de consulta basada en métodos: filtrado (LINQ to Entities)
Ejemplos de sintaxis de consulta basada en métodos: ordenación (LINQ to Entities)
Ejemplos de sintaxis de consulta basada en métodos: operadores de agregado (LINQ to Entities)
Ejemplos de sintaxis de consulta basada en métodos: creación de particiones (LINQ to Entities)
Ejemplos de sintaxis de consulta basada en métodos: conversión (LINQ to Entities)
Ejemplos de sintaxis de consulta basada en métodos: operadores de combinación (LINQ to Entities)
Ejemplos de sintaxis de consulta basada en métodos: operadores de elementos (LINQ to Entities)
Ejemplos de sintaxis de consulta basada en métodos: Agrupación (LINQ to Entities)
Ejemplos de sintaxis de consulta basada en métodos: navegar por relaciones (LINQ to Entities)
Vea también
Conceptos
Otros recursos
Getting Started with LINQ in C#
Getting Started with LINQ in Visual Basic