Générer des requêtes avec QueryExpression

Dans Microsoft Dataverse, vous pouvez utiliser la classe QueryExpression pour générer par programme une requête contenant des filtres de données et des conditions de recherche qui définissent la portée d’une recherche dans une base de données. Une expression de requête est utilisée pour les recherches à un seul objet (table). Par exemple, vous pouvez créer une recherche pour retourner tous les comptes qui répondent à certains critères de recherche. La classe QueryBase est la classe de base pour les expressions de requête. Il y a trois classes dérivées : QueryExpression, QueryByAttribute et FetchExpression. La classe QueryExpression prend en charge les requêtes complexes. La classe QueryByAttribute est un moyen simple de rechercher des lignes de table dans lesquelles les colonnes correspondent à des valeurs spécifiées.

Notes

La troisième classe dérivée, FetchExpression est utilisée avec FetchXML, le langage de requête Dataverse propriétaire, peut être utilisé pour effectuer certaines requêtes à l’aide de requêtes XML. Plus d’informations : Interroger des données à l’aide de FetchXml

Les expressions de requête sont utilisées dans les méthodes qui récupèrent plusieurs lignes, par exemple la méthode IOrganizationService.RetrieveMultiple , dans les messages qui effectuent une opération sur un ensemble de résultats spécifié par une expression de requête, par exemple BulkDeleteRequest, et lorsque l’ID d’un enregistrement spécifique n’est pas connu.

Avertissement

Ne récupérez pas tous les colonnes d’une requête du fait de l’impact négatif sur les performances. Cela est particulièrement vrai si la requête est utilisée comme un paramètre à une demande de mise à jour. Dans une mise à jour, si toutes les colonnes sont incluses, cela définit les valeurs de champ, même si elles sont inchangées, et engendre souvent des mises à jour en cascade vers les enregistrements enfants.

Pour enregistrer une requête afin de pouvoir la réutiliser, vous pouvez la convertir en FetchXML à l’aide de QueryExpressionToFetchXmlRequest et la sauvegarder sous forme de vue enregistrée. Pour plus d’informations : Requêtes enregistrées

Alternatives à QueryExpression

Il existe deux autres méthodes permettant de créer des requêtes pour récupérer des enregistrements depuis Dataverse.

Configuration pour recherche rapide

Dans les applications basées sur un modèle, il existe une fonctionnalité de recherche rapide. Si un utilisateur fournit des critères de recherche dans la recherche rapide qui ne sont pas assez sélectifs, le système détecte cela et arrête la recherche. Un formulaire plus rapide de recherche rapide est pris en charge et peut entraîner une différence de performances importante. Cela est contrôlé par la colonne QuickFindRecordLimitEnabled de la table d’organisation. Lorsque cette valeur de colonne Boolean est true, une limite est imposée aux requêtes de recherche rapide.

Contenu de la section

Utilisation de la classe QueryByAttribute
Utilisation de la classe QueryExpression
Utilisation de la classe ColumnSet
Utilisation de la classe ConditionExpression
Utilisation de la classe FilterExpression
Utilisez une jointure externe gauche dans QueryExpression afin de rechercher des enregistrements « pas dans »
Mettre en page d’importants ensembles de résultats avec une Expression de requête et FetchXML
Exemple : extraire avec une relation un-à-plusieurs
Exemple : récupération multiple avec QueryByAttribute
Exemple : récupération multiple avec QueryExpression
Exemple : Utiliser QueryExpression avec un cookie de pagination

Référence

QueryBase
QueryExpression
QueryByAttribute
RetrieveMultiple
ColumnSet
ConditionExpression
FilterExpression
PagingCookie

Voir aussi

Exemple : Convertir des requêtes entre des expressions Fetch et Query

Notes

Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)

Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).