LINQ (Language Integrated Query) es una característica agregada a los lenguajes .NET que extiende las capacidades de consulta de estos lenguajes. Visual Studio viene con assemblies de LINQ que habilitan el uso de LINQ con diferentes fuentes de datos, tales como colecciones en memoria, bases de datos relacionales SQL, Datasets ADO.NET, documentos XML, etc. En Visual Studio, Visual C# y Visual Basic son los lenguajes que implementan las extensiones de LINQ. Las extensiones de LINQ usan los nuevos operadores estandard de consulta, para cualquier colección que implemente IEnumerable<T> en C# o IEnumerable(Of T) (en VB). Esto significa que todas las colecciones y los arrays pueden ser consultados usando LINQ. Las colecciones, simplemente necesitan implementar IEnumerable<T>, para habilitarlas para que LINQ consulte las colecciones.

Arquitectura de LINQ

Arquitectura de LINQ
Figura 1 - Arquitectura de LINQ

Como se ve en la figura 1, LINQ esta integrado en los lenguajes (de alli su nombre), y puede interacturar con diferentes fuentes de datos, a través de las distintas implementaciones existentes, que detallamos en la tabla siguiente:

Implementación de LINQ Características
LINQ to Objects Consultas LINQ para accesar estructuras en memoria. Podemos consultar cualquier tipo que suporte IEnumerable(Of T) (Visual Basic) or IEnumerable<T> (C#).
LINQ to SQL Usado para administrar los datos relacionales como objetos. Es parte de la familia de tecnologías ADO.NET. LINQ to SQL traduce las consultas escritas en LINQ al modelo de objetos en SQL y las envía a la base de datos para su ejecución. Cuando la base de datos devuelve el resultado, LINQ to SQL lo traduce nuevamente a objetos para poder trabajar con ellos. LINQ to SQL soporta también procedimientos almacenados (stored procedures) y funciones definidas por el usuario (user-defined functions) definidas en la base de datos.
LINQ to Datasets Hace más fácil consultar los datos guardados en Datasets. Un Dataset está formado por datos desconectados y consolidados desde diferentes fuentes de datos.
LINQ to Entities El modelo de entidad de datos (Entity Data Model) es un modelo de datos conceptual que puede ser usado para modelar los datos, para que las aplicaciones puedan interactuar con los datos como entities (entidades) u objetos. A través del modelo de entidad de datos, ADO.NET expone las entidades como objetos.
LINQ to XML Provee capacidades de modificación de documentos en memoria del Document Object Model (DOM) y suporta consultas LINQ. Usando LINQ to XML, podemos consultar, modificar, navegar, y grabar los cambios de un documento XML. Nos capacita para escribir consultas para navegary recuperar una colección de elementos y atributos. Es similar a XPath y XQuery.
respag
Panamá - © 2012
Haga su donación para colaborar con La Escuela del Programador

La Escuela del Programador es un sitio web sin anuncios, sin ánimo de lucro, no es un sitio web comercial. Es el sueño de compartir con todos, muchos años de una gran pasión. Si realmente encuentra este sitio útil y lo aprovecha, le pido su generosa y no importa cuán modesta colaboración, simplemente para afrontar los costos de mantener este sitio disponible en internet.
No deseo lucrar con este sitio, ya que lo hago desinteresadamente, sólo le pido que, si puede, aporte (desde un dólar hasta lo que crea que puede dar), para afrontar los costos de dominio y hosting. Muchísimas gracias y ojalá juntos podamos hacer un sitio que sea una buena fuente de aprendizaje de programacíon en español.

Si no se siente en condiciones de colaborar, igualmente será bienvenido al sitio, es libre para todos y será un placer que encuentre mis artículos provechosos, pero si realmente me ayuda con una donación minima, seguramente, colaborará para que La Escuela del Programador se mantenga en la Web y crezca, conviertiendo a este sitio hecho con mucha pasión, dedicación y esfuerzo, en una buena fuente de aprendizaje.

Mis saludos cordiales y gracias por interesarse en mi sitio.

Rubén E. Spagnuolo
respag
Panamá - © 2012