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 |
---|---|
Especifica o nome lógico do atributo na expressão da condição. |
|
Especifica o operador da condição. Isso é definido com a enumeração ConditionOperator. |
|
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