LINQ to ADO.NET permite consultar objetos enumerables en ADO.NET mediante el uso del modelo de programación de LINQ (Language-Integrated Query).
Hay tres tecnologías ADO.NET Language-Integrated Query (LINQ) distintas: LINQ to DataSet, LINQ to SQL y LINQ to Entities. LINQ to DataSet proporciona una capacidad de consulta más rica y optimizada sobre Dataset, LINQ to SQL permite consultar directamente los esquemas de la base de datos de SQL Server y LINQ to Entities permite consultar Entity Data Model.
LINQ to DataSet
DataSet es uno de los componentes más utilizados en ADO.NET y es un elemento clave del modelo de programación desconectado en el que se basa ADO.NET. A pesar de este punto destacado, DataSet tiene funciones de consulta limitadas.
LINQ to DataSet permite integrar funciones de consulta más completas en DataSet mediante la misma funcionalidad de consulta que está disponible para muchos otros orígenes de datos.
LINQ to SQL
LINQ to SQL proporciona una infraestructura en tiempo de ejecución para administrar los datos relacionales como objetos. En LINQ to SQL, el modelo de datos de una base de datos relacional se asigna a un modelo de objetos expresado en el lenguaje de programación del programador. Al ejecutar la aplicación, LINQ to SQL convierte las consultas integradas en el lenguaje del modelo de objetos a SQL y las envía a la base de datos para su ejecución. Cuando la base de datos devuelve los resultados, LINQ to SQL los vuelve a convertir en objetos que se pueden manipular.
LINQ to SQL incluye compatibilidad con los procedimientos almacenados y las funciones definidas por el usuario en la base de datos, así como con la herencia del modelo de objetos.
LINQ to Entities
A través del Entity Data Model, los datos relacionales se exponen como objetos en el entorno .NET. Esto hace de la capa de objetos un objetivo idóneo para la compatibilidad con LINQ, ya que permite a los programadores formular consultas en la base de datos con el lenguaje utilizado para generar la lógica empresarial. Esta función se conoce como LINQ to Entities.