Générer des requêtes avec QueryExpression

 

Date de publication : janvier 2017

S’applique à : Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Dans Microsoft Dynamics 365 (Online et local), 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. 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 deux classes dérivées : QueryExpression et QueryByAttribute. La classe QueryExpression prend en charge les requêtes complexes. La classe QueryByAttribute est un moyen simple de rechercher des entités dans lesquelles les attributs correspondent à des valeurs spécifiées.

Les expressions de requête sont utilisées dans les méthodes qui récupèrent plusieurs enregistrements, 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.

En outre, il y a un nouvel attribut sur l’entité d’organisation, Organization.QuickFindRecordLimitEnabled. Lorsque cet attribut Boolean est true, une limite est imposée aux requêtes 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.

Avertissement

Ne récupérez pas tous les attributs 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 tous les attributs sont inclus, 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.

Il existe deux autres méthodes permettant de créer des requêtes pour récupérer des enregistrements depuis Microsoft Dynamics 365.FetchXML, le langage de requête Microsoft Dynamics 365 propriétaire, peut être utilisé pour effectuer certaines requêtes à l’aide de requêtes XML. Pour plus d'informations, voir Générer des requêtes avec FetchXML. Vous pouvez aussi utiliser Language-Integrated Query (LINQ) .NET pour écrire des requêtes.Pour plus d'informations :Générer des requêtes avec LINQ (Language-Integrated Query .NET).

Pour enregistrer une requête, vous pouvez la convertir en FetchXML à l’aide de QueryExpressionToFetchXmlRequest et la sauvegarder sous forme de vue enregistrée à l’aide de l’entité userquery.

Dans cette section

Utiliser la classe QueryByAttribute

Utiliser la classe QueryExpression

Utiliser la classe ColumnSet

Utiliser la classe ConditionExpression

Utiliser la classe FilterExpression

Utilisez une jointure externe gauche dans QueryExpression afin de rechercher des enregistrements « pas dans »

Tester une valeur nulle

Mettre en page d’importants ensembles de résultats avec QueryExpression

Exemple : Extraire avec une relation un-à-plusieurs

Exemple : Récupération multiple avec la classe QueryByAttribute

Exemple : récupération multiple avec la classe 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

Microsoft Dynamics 365

© 2017 Microsoft. Tous droits réservés. Copyright