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
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