Vue d'ensemble de LINQ to DataSet

Le DataSet figure parmi les composants d’ADO.NET les plus largement utilisés. C’est un élément clé du modèle de programmation déconnecté sur lequel ADO.NET est basé. Il vous permet de mettre en cache explicitement les données de sources différentes. Pour la couche Présentation, le DataSet est étroitement intégré aux contrôles d’interface utilisateur graphique pour la liaison de données. Pour la couche intermédiaire, il fournit un cache qui préserve la forme relationnelle de données et inclut des services simples et rapides de requête et de navigation dans la hiérarchie. Une technique courante pour réduire le nombre de demandes sur une base de données consiste à utiliser le DataSet pour la mise en cache dans la couche intermédiaire. Prenons l’exemple d’une application web ASP.NET pilotée par les données. En général, une partie significative des données d'application ne change pas fréquemment et est commune à plusieurs sessions ou utilisateurs. Ces données peuvent être conservées en mémoire sur le serveur web, ce qui réduit le nombre de demandes adressées à la base de données et accélère les interactions de l’utilisateur. Un autre aspect utile du DataSet est qu’il permet aux applications de placer des sous-ensembles de données d’une ou plusieurs sources de données dans l’espace d’application. L'application peut alors manipuler les données en mémoire, tout en conservant sa forme relationnelle.

Cependant, en dépit de son importance, le DataSet a des capacités de requête limitées. La méthode Select peut être utilisée pour le filtrage et le tri, et les méthodes GetChildRows et GetParentRow pour la navigation dans la hiérarchie. Pour toute opération plus complexe, cependant, le développeur doit écrire une requête personnalisée. Cela peut entraîner un dysfonctionnement des applications et les rendre difficiles à gérer.

LINQ to DataSet facilite et accélère l’interrogation de données mises en cache dans un objet DataSet. Ces requêtes sont exprimées dans le langage de programmation même, plutôt qu'en tant que littéraux de chaîne incorporés dans le code de l'application. Ainsi, les développeurs n'ont pas à apprendre de langage de requête spécifique. En outre, LINQ to DataSet permet aux développeurs Visual Studio de travailler plus efficacement, car l’IDE Visual Studio permet 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 réaliser plusieurs scénarios qui requièrent de la flexibilité dans la façon dont les données sont représentées et gérées. En particulier, les applications génériques de création de rapports, d'analyse et de business intelligence requièrent 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 manières de charger des données dans un DataSet, comme l’utilisation de la classe DataAdapter ou de LINQ to SQL. Une fois les données chargées dans un objet DataSet, vous pouvez y exécuter des requêtes. La formulation de requêtes à l’aide de LINQ to DataSet est similaire à l’utilisation de LINQ (Language-Integrated Query) sur d’autres sources de données compatibles LINQ. Il est possible d’exécuter des requêtes LINQ sur des tables uniques d’un DataSet ou sur plusieurs tables à l’aide des opérateurs de requête standard Join et GroupJoin.

Les requêtes LINQ sont prises en charge sur des objets DataSet typés et non typés. 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.

Outre les opérateurs de requête standard implémentés dans System.Core.dll, LINQ to DataSet ajoute plusieurs extensions spécifiques au DataSet pour faciliter l’exécution des requêtes sur un ensemble d’objets DataRow. Ces extensions spécifiques à DataSet 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 multicouches et LINQ to DataSet

Les applications de données multicouches sont des applications centrées sur les données qui sont étagées en plusieurs couches logiques. Une application multicouche classique inclut une couche Présentation, une couche intermédiaire et une couche Données. La séparation des composants d'application en couches distinctes renforce la facilité de maintenance et l'évolutivité de l'application. Pour plus d’informations sur les applications de données multiniveaux, consultez Utilisation de jeux de données dans des applications multiniveaux.

Dans les applications multicouches, le DataSet est souvent utilisé dans la couche intermédiaire pour mettre en cache les 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