Utilizzare la classe QueryExpression

 

Data di pubblicazione: gennaio 2017

Si applica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

In Microsoft Dynamics 365 e in Microsoft Dynamics 365 (online) è possibile utilizzare la classe QueryExpression per creare query complesse da utilizzare con il metodo IOrganizationService. RetrieveMultiple o con il messaggio RetrieveMultipleRequest. È possibile impostare i parametri della query su QueryExpression utilizzando le classi ConditionExpressionColumnSet e FilterExpression.

La classe QueryExpression consente di creare query complesse. La classe QueryByAttribute è progettata per fornire un'alternativa semplice per ricercare le entità in cui gli attributi corrispondo ai valori specificati.

Nella tabella seguente sono elencate le proprietà che è possibile impostare per creare un'espressione di query.

Proprietà

Descrizione

EntityName

Specifica il tipo di entità che verrà recuperato. Un'espressione di query può recuperare solo una raccolta di un tipo di entità.

ColumnSet

Specifica il set di attributi (colonne) da recuperare.

Criteria

Specifica espressioni di filtro logiche o condizionali complesse che filtrano i risultati della query.

Distinct

Specifica se i risultati della query contengono record duplicati.

LinkEntities

Specifica i collegamenti tra più tipi di entità.

Orders

Specifica l'ordine in cui i record vengono restituiti dalla query.

PageInfo

Specifica il numero di pagine e il numero di record per pagina restituiti della query.

Contare i record

Per individuare il numero di record restituiti dalla query, impostare la proprietà ReturnTotalRecordCount su true prima dell'esecuzione della query. Quando si esegue tale operazione, verrà impostato TotalRecordCount. Altrimenti, questo valore sarà -1.

Esempio

Nell'esempio seguente viene illustrato come utilizzare 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("---------------------------------------");

Vedere anche

QueryExpression
Compilare query con QueryExpression
Utilizzare la classe ColumnSet
Utilizzare la classe ConditionExpression
Utilizzare la classe di FilterExpression

Microsoft Dynamics 365

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright