Skip to content


LINQ

LINQ por sus siglas significan Language Integrated Query y es una tecnología integrada con Visual Studio 2008 y el .NET Framework 3.5 diseñada para ayudar en la integración de datos relacionales, XML y otros tipos de datos.

Si tuviéramos que resumir en tres sentencias lo que es LINQ estas podrían ser las apropiadas:

1. LINQ integra los mundos de Datos y Objetos.
2. LINQ provee un lenguaje natural potente con sintaxis de consultas para acceso datos y objetos, con independencia de la fuente de datos.
3. LINQ se enfoca en ser declarativo en vez de imperativo.

En este post me concentraré en presentarte una de las varias opciones para acceso de datos y objetos. En esta ocasión será consultar objetos que te ejemplifico con dos extractos de código.

Supongamos que en nuestro código tenemos declaradas dos clases Customer y Result. La clase Customer abstrae las propiedades de un objeto que identifica a un cliente. La clase Result solo sirve para registrar las coincidencias de una búsqueda dentro de un listado de objetos tipo Customer. Digamos que el siguiente código nos sirve para recorrer una colección de objetos Customer y queremos identificar aquellos clientes que su ciudad comiencen con la letra M:

 

LINQ1

¿Cómo ves? ¿El código te resulta familiar? ¿Y si te dijera que hay una forma más simple de implementar esto?

Les presento la implementación de LINQ para consultar objetos de nuestras clases:

LINQ2

Como pueden notar tenemos un lenguaje tipo SQL mezclado con nuestro código de C#, el resultado de hacer esto es exactamente el mismo del código anterior.

Esto funciona debido a que el compilador de C# detecta que la función LoadCustomers devuelve una colección de cierto tipo de objeto. Como es una colección por lo tanto es “queryable”, y por lo tanto podemos ejecutar filtrados de selección y agrupamiento tal como lo conocemos de SQL.

Así que esta es solo una probadita del potencial que tenemos con LINQ.

  • Share/Bookmark

Posted in Desarrollo.


0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.



Some HTML is OK

or, reply to this post via trackback.