Compartir por


Usar la clase ConditionExpression

 

Publicado: noviembre de 2016

Se aplica a: Dynamics CRM 2015

En Microsoft Dynamics CRM 2015 y actualización de Microsoft Dynamics CRM Online 2015, puede usar la clase de ConditionExpression para comparar un atributo con un valor o un conjunto de valores al usar un operador, como "igual a" o "mayor que". La clase de ConditionExpression le permite pasar expresiones de condición como parámetros a otras clases, como QueryExpression y FilterExpression.

La siguiente tabla enumera las propiedades que puede definir para crear una condición que usa la clase de ConditionExpression.

Propiedad

Descripción

AttributeName

Especifica el nombre lógico del atributo en la expresión de condición.

Operator

Especifica el operador de la condición. Esto se configura mediante la enumeración de ConditionOperator.

Values

Especifica los valores del atributo.

Al usar el método de AddCondition (o el constructor para ConditionExpression), es importante comprender si la matriz se agrega como varios valores o como una matriz.

El siguiente ejemplo del código muestra dos resultados diferentes en función de cómo se usa la matriz.

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 

En algunos casos, es necesario convertir a object[] o object, en función del comportamiento deseado.

Al crear una condición que compare un valor de atributo con una enumeración, como un código de estado, debe usar el método de ToString para convertir el valor de una cadena.

Ejemplo

El siguiente ejemplo del código muestra cómo usar la clase de 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("---------------------------------------");

Ejemplo

El siguiente ejemplo del código muestra cómo usar la clase de ConditionExpression a fin de realizar una prueba para el estado inactivo.

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

Ver también

ConditionExpression
Crear consultas con QueryExpression
Crear consultas con QueryExpression
Usar la clase FilterExpression

© 2017 Microsoft. Todos los derechos reservados. Copyright