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 |
---|---|
Specifica il nome logico dell'attributo nell'espressione di condizione. |
|
Specifica l'operatore di condizione. Si imposta utilizzando l'enumerazione ConditionOperator. |
|
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