Partager via


Utiliser la classe QueryExpression

Dans Microsoft Dataverse, 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çu pour être un moyen simple de rechercher des lignes de tableau où les colonnes correspondent aux valeurs spécifiées.

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("---------------------------------------");  

Utiliser des conseils SQL dans une requête

La classe QueryExpression contient une propriété nommée QueryHints. En définissant cette propriété sur l’une des valeurs de chaîne prises en charge ci-dessous, vous pouvez fournir une indication pour le texte SQL généré qui affecte l’exécution de la requête.

Valeur QueryHint Option de requête SQL et conseil
OptimizeForUnknown Optimiser pour inconnu
ForceOrder Forcer l’ordre
DisableRowGoal use hint('Disable_Optimizer_RowGoal')
EnableOptimizerHotfixes utiliser hint(’ENABLE_QUERY_OPTIMIZER_HOTFIXES’)
LoopJoin Mettre en boucle la jonction
MergeJoin Fusionner la jonction
HashJoin Hacher la jonction
NO_PERFORMANCE_SPOOL NO_PERFORMANCE_SPOOL
MaxRecursion Numéro MAXRECURSION
ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS

Plus d’information : Conseils (Transact-SQL) - Requête

Voir aussi

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

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é).