Introducción a LINQ
Language-Integrated Query (LINQ) es una innovación introducida en Visual Studio 2008 y .NET Framework versión 3.5 que elimina la distancia que separa el mundo de los objetos y el mundo de los datos.
Tradicionalmente, las consultas con datos se expresan como cadenas sencillas, sin comprobación de tipos en tiempo de compilación ni compatibilidad con IntelliSense. Además, es necesario aprender un lenguaje de consultas diferente para cada tipo de origen de datos: bases de datos SQL, documentos XML, servicios Web diversos, etc. LINQ convierte una consulta en una construcción de lenguaje de primera clase en C# y Visual Basic. Las consultas se escriben para colecciones de objetos fuertemente tipadas, utilizando palabras clave del lenguaje y operadores con los que se está familiarizado. La ilustración siguiente muestra una consulta LINQ parcialmente completada en una base de datos SQL Server en C#, con comprobación de tipos completa y compatibilidad con IntelliSense.
En Visual Studio se pueden escribir consultas LINQ en Visual Basic o en C# con bases de datos SQL Server, documentos XML, conjuntos de datos ADO.NET y cualquier colección de objetos que admita IEnumerable o la interfaz genérica IEnumerable<T>. También se ha previsto la compatibilidad de LINQ con ADO.NET Entity Framework, y otros fabricantes se encuentran escribiendo proveedores LINQ para muchos servicios Web y otras implementaciones de bases de datos.
Puede utilizar consultas LINQ en proyectos nuevos o junto a consultas que no son LINQ en proyectos existentes. El único requisito es que el proyecto esté orientado a .NET Framework 3.5 o posterior.
Pasos siguientes
Para obtener información más detallada sobre LINQ, empiece por familiarizarse con algunos conceptos básicos en la sección Introducción que corresponda al lenguaje que utilice:
A continuación, lea la documentación relativa a la tecnología LINQ en la que esté interesado:
Bases de datos de SQL Server: LINQ to SQL
Documentos XML: LINQ to XML
Conjuntos de datos ADO.NET: LINQ to DataSet
Colecciones, archivos, cadenas, etc. de .NET: LINQ to Objects