Utilizzare la classe ConditionExpression

 

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 (online e locale), è possibile utilizzare la classe ConditionExpression per confrontare un attributo a un valore o a un set di valori utilizzando un operatore, quale ad esempio "uguale a" o "maggiore di". La classe ConditionExpression consente di passare espressioni di condizione come parametri a altre classi, come QueryExpression e FilterExpression.

Nella tabella seguente sono elencate le proprietà che è possibile impostare per creare una condizione utilizzando la classe ConditionExpression.

Proprietà

Descrizione

AttributeName

Specifica il nome logico dell'attributo nell'espressione di condizione.

Operator

Specifica l'operatore di condizione. Si imposta utilizzando l'enumerazione ConditionOperator.

Values

Specifica i valori dell'attributo.

Utilizzando il metodo AddCondition (o il costruttore per ConditionExpression), è importante comprendere se la matrice è stata aggiunta come valori multipli o come una matrice.

Nell'esempio seguente di codice vengono mostrati due risultati diversi a seconda di come la matrice è utilizzata.

string[] values = new string[] { "Value1", "Value2" };
ConditionExpression c = new ConditionExpression("name", ConditionOperator.In, values);
Console.WriteLine(c.Values.Count); //This will output 2 
string[] values = new string[] { "Value1", "Value2" }object value = values;
ConditionExpression c = new ConditionExpression("name", ConditionOperator.In, value);
Console.WriteLine(c.Values.Count); //This will output 1 

In alcuni casi, è necessario eseguire il cast su object[] o object, a seconda del comportamento desiderato.

Quando si crea una condizione che confronta un valore dell'attributo a una enumerazione, quale ad esempio un codice di stato, è necessario utilizzare il metodo ToString per convertire il valore in una stringa.

Esempio

Nell'esempio di codice seguente viene illustrato come utilizzare la classe ConditionExpression.

//  Query using ConditionExpression  
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("---------------------------------------");

Esempio

Nell'esempio di codice seguente viene illustrato come utilizzare la classe ConditionExpression per testare lo stato inattivo.

ConditionExpression condition3 = new ConditionExpression();
condition3.AttributeName = "statecode";
condition3.Operator = ConditionOperator.Equal;
condition3.Values.Add(AccountState.Active);

Vedere anche

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

Microsoft Dynamics 365

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright