Usar a classe ConditionExpression

 

Publicado: janeiro de 2017

Aplicável a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

No Microsoft Dynamics 365 (online e local), é possível usar a classe ConditionExpression para comparar um atributo em relação a um valor ou conjunto de valores usando um operador, como “igual a” ou “maior que”. A classe ConditionExpression permite transmitir expressões de condição como parâmetros para outras classes, como QueryExpression e FilterExpression.

A tabela a seguir lista as propriedades que podem ser definidas para criar uma condição usando a classe ConditionExpression.

Propriedade

Descrição

AttributeName

Especifica o nome lógico do atributo na expressão da condição.

Operator

Especifica o operador da condição. Isso é definido com a enumeração ConditionOperator.

Values

Especifica os valores do atributo.

Ao usar o método AddCondition (ou o construtor para ConditionExpression), é importante entender se a matriz está sendo adicionada como valores múltiplos ou como uma matriz.

O exemplo de código a seguir mostra dois resultados diferentes, dependendo da forma como a matriz é usada.

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 

Em alguns casos, é necessário converter para object[] ou object, dependendo do comportamento desejado.

Ao criar uma condição que compara um valor de atributo com uma enumeração, como um código de estado, é necessário usar o método ToString para converter o valor para uma cadeia de caracteres.

Exemplo

O exemplo de código a seguir mostra como usar a 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("---------------------------------------");

Exemplo

O exemplo de código a seguir mostra como usar a classe ConditionExpression para testar o estado inativo.

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

Confira Também

ConditionExpression
Criar consultas com QueryExpression
Criar consultas com QueryExpression
Use a classe FilterExpression

Microsoft Dynamics 365

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais