Información general de LINQ to DataSet

DataSet es uno de los componentes más ampliamente utilizados de ADO.NET. Es un elemento fundamental del modelo de programación desconectado en el que se basa ADO.NET y permite almacenar explícitamente en caché datos de diferentes orígenes de datos. Para el nivel de presentación, DataSet está estrechamente integrado en los controles de GUI para el enlace de datos. Para el nivel medio, proporciona una caché que conserva la forma relacional de los datos e incluye servicios de exploración de jerarquías y consultas rápidos y sencillos. Una técnica común que se usa para reducir el número de solicitudes de una bases de datos consiste en utilizar DataSet para el almacenamiento en caché en el nivel medio. Por ejemplo, piense en una aplicación web de ASP.NET controlada por datos. A menudo una parte importante de los datos de aplicación no cambia frecuentemente y es común entre sesiones o usuarios. Estos datos se pueden conservar en memoria o en un servidor web, lo que reduce el número de solicitudes en la base de datos y acelera las interacciones del usuario. Otro aspecto útil de DataSet es que permite que una aplicación lleve subconjuntos de datos de uno o más orígenes de datos al espacio de la aplicación. La aplicación puede manipular los datos en memoria mientras retiene su forma relacional.

A pesar de su importancia, DataSet tiene capacidades de consulta limitadas. El método Select se puede usar para filtrar y ordenar y los métodos GetChildRows y GetParentRow se pueden usar para la exploración de jerarquías. Sin embargo, para cualquier tarea más compleja, el programador debe escribir una consulta personalizada. Esto puede tener como resultado aplicaciones con un bajo rendimiento y con un mantenimiento difícil.

LINQ to DataSet facilita y acelera las consultas en datos almacenados en caché en un objeto DataSet. Esas consultas se expresan en el lenguaje de programación mismo, en lugar de como literales de cadena incrustados en el código de la aplicación. Esto significa que los desarrolladores no tienen que aprender un lenguaje de consultas diferente. Además, LINQ to DataSet permite a los desarrolladores de Visual Studio trabajar de forma más productiva, ya que el IDE de Visual Studio proporciona comprobación de sintaxis en tiempo de compilación, escritura estática e compatibilidad con IntelliSense para LINQ. LINQ to DataSet también se puede usar para consultar los datos que se han consolidado de uno o más orígenes de datos. Esto permite muchos casos que requieren flexibilidad en la forma de representar y controlar los datos. En concreto, las aplicaciones de inteligencia empresaria, análisis e informes genéricos requieren este método de manipulación.

Consultar conjuntos de datos usando LINQ to DataSet

Antes de poder empezar a consultar un objeto DataSet usando LINQ to DataSet, se debe rellenar el DataSet. Existen varias formas de cargar datos en un DataSet, como usar la clase DataAdapter o LINQ to SQL. Cuando se han cargado los datos en un objeto DataSet, se puede empezar a realizar consultas en él. La formulación de consultas mediante LINQ to DataSet es similar al uso de Language-Integrated Query (LINQ) en otros orígenes de datos habilitados para LINQ. Se pueden realizar consultas de LINQ en tablas únicas en un DataSet o en más de una tabla usando los operadores de consulta estándar Join y GroupJoin.

Se admiten consultas de LINQ en objetos DataSet con tipo y sin tipo. Si el esquema de DataSet es desconocido en tiempo de diseño, se recomienda un DataSet con tipo. En un DataSet con tipo, las tablas y las filas tienen miembros con tipo para cada una de las columnas, lo que hace que las consultas sean más sencillas y legibles.

Además de los operadores de consulta estándar implementados en System.Core.dll, LINQ to DataSet agrega varias extensiones específicas de DataSet que hacen que realizar consultas en un conjunto de objetos DataRow sea sencillo. Estas extensiones específicas de DataSet incluyen operadores para comparar secuencias de filas, así como métodos que proporcionan acceso a los valores de columna de un DataRow.

Aplicaciones con n niveles y LINQ to DataSet

Las aplicaciones de datos con n niveles son aplicaciones centradas en datos separadas en varias capas lógicas (o niveles). Una aplicación con n capas típica incluye una capa de presentación, una capa media y una capa de datos. Al separar los componentes de la aplicación en niveles independientes, se aumenta la facilidad de mantenimiento y la escalabilidad de la aplicación. Para más información sobre las aplicaciones de datos de n niveles, consulte Trabajar con conjuntos de datos en aplicaciones de n niveles.

En las aplicaciones con n niveles, a menudo se utiliza DataSet en el nivel medio para almacenar en caché información para una aplicación web. La funcionalidad de consulta de LINQ to DataSet se implementa mediante los métodos de extensión y DataSet de ADO.NET 2.0 existente.

Consulte también