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