Partager via


Vue d’ensemble de LINQ to DataSet

DataSet est l'un des composants les plus utilisés d'ADO.NET. Il s’agit d’un élément clé du modèle de programmation déconnecté sur lequel ADO.NET est basé et vous permet de mettre en cache explicitement des données provenant de différentes sources de données. Pour le niveau de présentation, le DataSet est étroitement intégré aux contrôles d’interface graphique afin de lier les données. Pour le niveau intermédiaire, il fournit un cache qui conserve la forme relationnelle des données et inclut des services de navigation de requête et de hiérarchie rapides. Une technique courante utilisée pour réduire le nombre de requêtes sur une base de données consiste à utiliser la DataSet mise en cache dans le niveau intermédiaire. Par exemple, considérez une application web basée sur les données ASP.NET. Souvent, une partie importante des données d’application ne change pas fréquemment et est commune entre les sessions ou les utilisateurs. Ces données peuvent être conservées en mémoire sur le serveur Web, ce qui réduit le nombre de requêtes sur la base de données et accélère les interactions de l’utilisateur. Un autre aspect utile de DataSet est qu’il permet à une application d’intégrer des sous-ensembles de données issues d’une ou plusieurs sources de données dans l’espace d’application. L’application peut ensuite manipuler les données en mémoire tout en conservant sa forme relationnelle.

Malgré son importance, les DataSet fonctionnalités de requête sont limitées. Les méthodes Select peuvent être utilisées pour le filtrage et le tri, et les méthodes GetChildRows et GetParentRow peuvent être utilisées pour la navigation dans la hiérarchie. Pour tout ce qui est plus complexe, toutefois, le développeur doit écrire une requête personnalisée. Cela peut entraîner des applications qui fonctionnent mal et sont difficiles à gérer.

LINQ to DataSet facilite et accélère l’interrogation des données mises en cache dans un DataSet objet. Ces requêtes sont exprimées dans le langage de programmation lui-même, plutôt que sous forme de littéraux de chaîne incorporés dans le code de l’application. Cela signifie que les développeurs n’ont pas besoin d’apprendre un langage de requête distinct. En outre, LINQ to DataSet permet aux développeurs Visual Studio de travailler plus efficacement, car l’IDE Visual Studio fournit la vérification de la syntaxe au moment de la compilation, la saisie statique et la prise en charge d’IntelliSense pour LINQ. LINQ to DataSet peut également être utilisé pour interroger des données qui ont été consolidées à partir d’une ou plusieurs sources de données. Cela permet de nombreux scénarios qui nécessitent une flexibilité dans la façon dont les données sont représentées et gérées. En particulier, les applications de création de rapports, d’analyse et de décisionnel génériques nécessitent cette méthode de manipulation.

Interrogation de DataSets à l'aide de LINQ to DataSet

Avant de procéder à l’interrogation d’un objet DataSet à l’aide de LINQ to DataSet, vous devez remplir le DataSet. Il existe plusieurs façons de charger des données dans une DataSetclasse, comme l’utilisation de la DataAdapter classe ou LINQ to SQL. Une fois que les données ont été chargées dans un DataSet objet, vous pouvez commencer à l’interroger. La simulation de requêtes à l’aide de LINQ to DataSet est similaire à l’utilisation de Language-Integrated Query (LINQ) sur d’autres sources de données compatibles LINQ. Les requêtes LINQ peuvent être effectuées sur des tables uniques dans un DataSet ou sur plusieurs tables à l’aide des opérateurs de requête standard JoinGroupJoin.

Les requêtes LINQ sont prises en charge pour les objets typés et non typés DataSet. Si le schéma du DataSet est connu au moment du design de l'application, nous vous recommandons d'utiliser un DataSet typé. Dans un DataSet, les tables et lignes ont des membres typés pour chaque colonne, ce qui rend les requêtes plus simples et plus lisibles.

En plus des opérateurs de requête standard implémentés dans System.Core.dll, LINQ to DataSet ajoute plusieurs DataSetextensions spécifiques qui facilitent l’interrogation sur un ensemble d’objets DataRow . Ces DataSetextensions spécifiques incluent des opérateurs pour comparer des séquences de lignes, ainsi que des méthodes qui fournissent l’accès aux valeurs de colonne d’un DataRow.

Applications de niveau N et LINQ to DataSet

Les applications de données multiniveau sont des applications centrées sur les données qui sont séparées en plusieurs couches logiques (ou niveaux). Une application de niveau N classique comprend un niveau de présentation, un niveau intermédiaire et un niveau de données. La séparation des composants d’application en niveaux distincts augmente la facilité de maintenance et l’extensibilité de l’application. Pour plus d’informations sur les applications de données multiniveau, consultez Utiliser des jeux de données dans des applications multiniveau.

Dans les applications multiniveau, il DataSet est souvent utilisé dans le niveau intermédiaire pour mettre en cache des informations pour une application web. Les fonctionnalités d’interrogation de LINQ to DataSet sont implémentées par des méthodes d’extension et étendent le DataSet ADO.NET 2.0 existant.

Voir aussi