Requêtes : récupération d'informations à partir d'une source de données

 

Pour la documentation la plus récente de Visual Studio 2017 RC, consultez Documentation RC de Visual Studio 2017.

Utilisez une requête pour renvoyer des données correspondant à un ensemble de critères. Par exemple, si vous voulez savoir combien de clients habitent aux États-Unis, vous pouvez créer une requête qui analyse une liste des clients et vérifie le pays/la région indiqué(e) dans leur adresse.

Vous pouvez créer des requêtes et les enregistrer dans le modèle de votre application. Vous pouvez alors spécifier vos critères de recherche à l'aide du Concepteur de requêtes. Si le concepteur de requêtes ne fournit pas la fonctionnalité dont vous avez besoin, vous pouvez étendre les requêtes en écrivant du code. Lorsque vous avez spécifié vos critères, consommez les requêtes dans un écran ou exécutez-les dans le cadre de votre logique métier.

Vous pouvez créer des requêtes dans l'Explorateur de solutions. Une requête est basée sur une seule entité ou table dans le modèle de votre application (par exemple, une entité Customer). Une requête peut également être basée sur d'autres requêtes dans le modèle de votre application. L'entité, la table ou la requête sur laquelle la requête est basée est appelée données sources de la requête. Pour plus d'informations, consultez Comment : Ajouter, supprimer et modifier une requête.

Dans la plupart des cas, vous pouvez concevoir visuellement une requête à l'aide du concepteur de requêtes. Ajoutez des conditions de filtre et des groupes de filtres, des termes de tri et des paramètres à une requête en faisant des sélections dans le concepteur. Pour plus d'informations, consultez Procédure : concevoir une requête à l’aide du concepteur de requêtes.

Conditions de filtre

Vous pouvez limiter les résultats d'une requête en ajoutant une ou plusieurs conditions de filtre. Une condition de filtre décrit une règle qui doit être satisfaite par chaque ligne de données. Les lignes qui satisfont la règle sont incluses dans les résultats de la requête. Une condition de filtre contient les trois parties de base suivantes :

  • Propriété de sélection

  • Valeur de comparaison

  • Opérateur

Une propriété de sélection est la propriété que vous voulez utiliser comme base de la condition de filtre. Par exemple, pour retourner des commandes qui ont une certaine date, vous pouvez utiliser OrderDate comme propriété de sélection. Une propriété de sélection peut être une propriété dans les données sources ou une propriété sur une entité ou table associée. Dans le concepteur de requêtes, les propriétés s'affichent uniquement pour les entités ou tables connexes qui ont une multiplicité de zéro à un ou un. Par exemple, une commande a un seul client. Par conséquent, dans une requête qui retourne des commandes, vous pouvez sélectionner les propriétés du client associé en tant que partie d'une condition de filtre. Si vous voulez utiliser une propriété sur une entité ou table connexe qui a une multiplicité de plusieurs, vous devez étendre la requête à l'aide de code.

La valeur de comparaison est comparée à la propriété de sélection. Une valeur de comparaison peut être une valeur littérale telle que la chaîne « 22/09/2009 12:00:00 », une propriété de sélection, un paramètre ou une valeur relative telle Maintenant, Aujourd'hui ou Début de la semaine.

Un opérateur est un symbole qui spécifie le type de comparaison que vous voulez faire. Par exemple, pour retourner des commandes pour lesquelles la date est antérieure au « 22/09/2009 12:00:00 », vous devez sélectionner l'opérateur "<".

La condition du filtre complète décrite dans cet exemple est Where OrderDate < 9/22/2009 12:00:00 AM.

Vous pouvez associer une condition de filtre à d'autres conditions de filtre à l'aide de l'un des opérateurs logiques suivants : And, Or, And Not, Or Not.

Vous pouvez modifier l'ordre des conditions en les faisant glisser vers les positions souhaitées dans le concepteur.

L'illustration suivante montre les parties d'une condition de filtre.

Conditions de filtre dans une requête

Groupes de filtres

Vous pouvez regrouper des conditions de filtre afin qu'elles soient évaluées comme une unité unique distincte des autres conditions de filtre. Pour cela, créez un groupe de filtres dans le concepteur de requêtes.

Les conditions de filtre de groupement sont semblables aux parenthèses encadrant une expression dans une équation mathématique ou une instruction logique. Lorsque vous groupez des conditions, l'opérateur logique qui s'affiche avant la première condition dans un groupe s'applique au groupe entier.

Tout comme les conditions de filtre individuelles, vous pouvez modifier l'ordre des groupes de filtres en les faisant glisser vers la position souhaitée dans le concepteur.

L'illustration suivante montre deux groupes de filtres.

Groupes de filtre dans une requête

Termes de tri

Vous pouvez spécifier l'ordre par défaut dans lequel les enregistrements s'affichent dans les résultats d'une requête en ajoutant un ou plusieurs termes de tri. Un terme de tri contient une propriété et une direction (par exemple, OrderDate et Ascending). Les termes de tri définissent l'ordre de tri par défaut des enregistrements qui s'affichent dans un écran. Les utilisateurs peuvent consulter des enregistrements dans un ordre différent en faisant des sélections dans l'interface utilisateur de l'écran. Dans le concepteur de requêtes, vous pouvez modifier l'ordre des termes de tri en les faisant glisser vers la position souhaitée dans la liste.

Paramètres

Vous pouvez permettre aux utilisateurs de filtrer les résultats de la requête dynamiquement. Par exemple, vous pouvez permettre à un utilisateur de consulter des commandes régionales en sélectionnant un secteur de vente spécifique sur un écran. Pour prendre en charge ce scénario, ajoutez un paramètre à une requête et nommez la requête de la façon appropriée (par exemple, SalesTerritory). Affectez ensuite la valeur de comparaison d'un filtre au paramètre. Par exemple, l'expression de requête peut être Where TerritoryID = SalesTerritory.

Vous pouvez concevoir des écrans qui permettent aux utilisateurs de fournir la valeur de paramètre au moment de l'exécution. Pour plus d'informations, consultez Comment : Fournir une valeur à un paramètre de requête.

Certains types de conditions de filtre ne sont pas pris en charge par le concepteur de requêtes. Si vous rencontrez une limitation dans le concepteur, vous pouvez ajouter des conditions à votre requête à l'aide de code.

System_CAPS_ICON_note.jpg Remarque

Vous ne pouvez pas étendre la requête d'un écran. Vous pouvez étendre uniquement des requêtes qui s'affichent dans l'explorateur de solutions. Pour plus d'informations sur la modification de la requête d'un écran, consultez Comment : filtrer des données dans un écran Silverlight.

Le tableau suivant affiche deux conditions de filtre que vous ne pouvez pas créer à l'aide du concepteur de requêtes.

Condition de filtreRaison pour utiliser le code
Retournez les 10 premiers clients selon le nombre de commandes.Pour déterminer le nombre de commandes, vous devez utiliser l'opération Count. Les opérations telles que Count, Aggregate et Sum ne sont pas disponibles dans le concepteur de requêtes
Retournez tous les clients qui ont acheté une brouette.Pour déterminer si un client a acheté une brouette, vous devez utiliser une condition de filtre qui référence une entité Product. Étant donné qu'un client peut être associé à plusieurs produits, l'entité Product existera probablement sur le côté plusieurs d'une relation Customer-Product. Le concepteur de requêtes ne vous permet pas d'accéder au côté plusieurs d'une relation.

Pour résoudre cette limitation, vous pouvez ajouter le code personnalisé à une méthode appelée lorsque la requête est exécutée. Pour plus d'informations, consultez Comment : Étendre une requête à l'aide du code.

Dans votre code, vous pouvez définir des conditions de filtre à l'aide de la syntaxe LINQ standard. Lorsque la requête est exécutée, les conditions que vous définissez dans le concepteur sont combinées avec les conditions que vous définissez dans votre code pour produire le résultat de la requête.

Les conditions que vous définissez dans votre code ne s'affichent pas comme des conditions de filtre dans le concepteur de requêtes. De la même façon, les conditions de filtre que vous ajoutez à l'aide du concepteur de requêtes ne s'affichent pas dans la méthode. Si vous voulez ajouter un paramètre à une requête, utilisez uniquement le concepteur de requêtes. Les paramètres que vous ajoutez à l'aide du concepteur de requêtes s'affichent dans la liste de paramètres de la méthode.

Vous pouvez consommer une requête sur un écran ou exécuter la requête dans le code dans le cadre d'une opération métier.

Consommation d'une requête dans un écran

Vous pouvez créer un écran basé sur une requête personnalisée (par exemple, un écran qui affiche une liste des clients qui se trouvent aux États-Unis). Pour plus d'informations, consultez Comment : créer un écran Silverlight.

Vous pouvez ajouter plusieurs requêtes à un écran. Par exemple, vous pouvez concevoir une requête qui affiche une liste de commandes pour un client particulier. Vous pouvez ajouter cette requête à l'écran Customer. Vous pouvez permettre ensuite à l'utilisateur de sélectionner un client pour consulter toutes les commandes associées. Pour plus d'informations sur la manière de procéder, consultez Comment : Fournir une valeur à un paramètre de requête.

Consommation d'une requête dans le code

Vous pouvez extraire des requêtes du modèle de l'application, puis les exécutez dans le code. Cela vous permet d'utiliser des collections ciblées de données dans la logique métier de votre application. Pour plus d'informations, consultez Comment : Récupérer les données d'une requête à l'aide du code.

TitreDescription
Comment : Ajouter, supprimer et modifier une requêteExplique où vous pouvez ajouter une requête dans l'interface utilisateur Visual Studio LightSwitch.
Procédure : concevoir une requête à l’aide du concepteur de requêtesDécrit comment définir les conditions de filtre, les paramètres et les termes de tri d'une requête à l'aide d'un concepteur visuel.
Comment : Fournir une valeur à un paramètre de requêteDécrit comment permettre aux utilisateurs de fournir une valeur dans un paramètre de requête.
Comment : Étendre une requête à l'aide du codeDécrit comment modifier une requête au-delà des fonctions du concepteur.
Comment : Gérer les événements de requêteDécrit comment gérer les événements qui se produisent avant et après l'exécution d'une requête.
Comment : Récupérer les données d'une requête à l'aide du codeDécrit comment extraire et exécuter une requête à l'aide de code.
Référence : propriétés du concepteur de requêtesDécrit les propriétés de requêtes et éléments de requête. Vous pouvez définir les valeurs de ces propriétés dans la fenêtre Propriétés.
Afficher: