LINQ to Entities proporciona la
capacidad de realizar consultas integradas en Language-Integrated Queries (LINQ) permitiendo escribir consultas contra el modelo conceptual de Entity Framework mediante los
lenguajes Visual Basic o Visual C#. Las consultas con EF se representan
mediante consultas de árboles de comandos, que se ejecutan en el contexto del
objeto. LINQ to Entities convierte las consultas de LINQ en consultas de árboles de comandos, ejecuta las consultas en EF y
devuelve objetos que se pueden usar tanto en EF como en LINQ.
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.
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. 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.
Las consultas de LINQ to Entities se pueden formular en dos
sintaxis diferentes:
- Sintaxis de expresiones de consulta.
- Sintaxis de consultas basadas en métodos.
La sintaxis de expresiones de consulta consta de
un conjunto de cláusulas escritas en una sintaxis declarativa similar a
Transact-SQL. Al usar la sintaxis de consulta, se pueden realizar operaciones
complejas de filtrado, clasificación, ordenación y agrupación en orígenes de
datos con una cantidad mínima de código. En la siguiente imagen, se muestra un método que realiza una consulta completa, incluyendo el uso de un
origen de datos, la definición de la expresión de consulta y la ejecución de la
consulta por medio de una instrucción foreach:
| Código C# con ejemplo de sintaxis de expresiones de consulta |
La sintaxis de consultas basadas en métodos no son más que
una secuencia de llamadas directas a los métodos de operador de LINQ, como son
Where, Select, GroupBy, OrderBy, Join, Max, etc., a las que además se le deben
pasar como parámetros expresiones lambda. En la siguiente imagen se puede ver un ejemplo de consulta utilizando expresiones Lambda.
| Código C# con ejemplo de sintaxis de consultas basadas en métodos |
En comparación, los dos tipos de sintaxis de LINQ son
bastante simples, sin embargo para realizar las consultas en el proyecto se
ha decidido utilizar la sintaxis de expresiones de consulta estándar, ya que no
es necesario crear expresiones Lambda que podrían tornarse complejas cuando la
consulta requiera de una mayor elaboración.
En el siguiente post, hablaremos de las librerías para la construcción de aplicaciones orientadas a servicios, Windows Communication Foundation (WCF).
¡Saludos!
Álvaro Alcolea
No hay comentarios:
Publicar un comentario
Añade un comentario