Partager via


Utiliser la classe 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 et Microsoft Dynamics 365 (Online), vous pouvez utiliser la classe QueryExpression pour créer des requêtes complexes à utiliser avec la méthode IOrganizationService.RetrieveMultiple ou le message RetrieveMultipleRequest. Vous pouvez définir des paramètres de requête sur QueryExpression à l’aide des classes ConditionExpression, ColumnSet et FilterExpression.

La classe QueryExpression vous permet de créer des requêtes complexes. La classe QueryByAttribute est conçue comme un moyen simple pour rechercher des entités dans lesquelles les attributs correspondent à des valeurs spécifiées.

Le tableau suivant répertorie les propriétés que vous définissez pour créer une expression de requête.

Propriété

Description

EntityName

Spécifie le type d’entité qui sera récupéré. Une expression de requête peut uniquement récupérer une collection d’un seul type d’entité.

ColumnSet

Spécifie l’ensemble des attributs (colonnes) à récupérer.

Criteria

Spécifie les expressions de filtre conditionnelles et logiques complexes qui filtrent les résultats de la requête.

Distinct

Spécifie si les résultats de la requête contiennent des enregistrements en double.

LinkEntities

Spécifie les liens entre plusieurs types d’entités.

Orders

Spécifie l’ordre dans lequel l’enregistrement est renvoyé pour la requête.

PageInfo

Spécifie le nombre de pages et le nombre d’enregistrements affichés par page renvoyés pour la requête.

Nombre d’enregistrements

Pour savoir combien d’enregistrements la requête a renvoyé, définissez la propriété ReturnTotalRecordCount sur true avant d’exécuter la requête. Dans ce cas, TotalRecordCount est défini. Sinon, cette valeur est -1.

Exemple

L’exemple suivant montre comment utiliser la classe QueryExpression.

//  Query using ConditionExpression and FilterExpression
ConditionExpression condition1 = new ConditionExpression();
condition1.AttributeName = "lastname";
condition1.Operator = ConditionOperator.Equal;
condition1.Values.Add("Brown");            

FilterExpression filter1 = new FilterExpression();
filter1.Conditions.Add(condition1);

QueryExpression query = new QueryExpression("contact");
query.ColumnSet.AddColumns("firstname", "lastname");
query.Criteria.AddFilter(filter1);

EntityCollection result1 = _serviceProxy.RetrieveMultiple(query);
Console.WriteLine();Console.WriteLine("Query using Query Expression with ConditionExpression and FilterExpression");
Console.WriteLine("---------------------------------------");
foreach (var a in result1.Entities)
{
    Console.WriteLine("Name: " + a.Attributes["firstname"] + " " + a.Attributes["lastname"]);
}
Console.WriteLine("---------------------------------------");

Voir aussi

QueryExpression
Générer des requêtes avec QueryExpression
Utiliser la classe ColumnSet
Utiliser la classe ConditionExpression
Utiliser la classe FilterExpression

Microsoft Dynamics 365

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