Compartir a través de


Usar la clase QueryExpression

 

Publicado: enero de 2017

Se aplica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

En Microsoft Dynamics 365 y Microsoft Dynamics 365 (online), puede usar una clase QueryExpression para crear consultas complejas para usarla con el IOrganizationService. método RetrieveMultiple o el mensaje RetrieveMultipleRequest. Se pueden configurar los parámetros de la consulta en QueryExpression con las clases ConditionExpression, ColumnSet y FilterExpression.

La clase QueryExpression permite crear consultas complejas. La clase QueryByAttribute está diseñada para ser una forma simple de búsqueda para las entidades en las que los atributos coinciden con los valores especificados.

En la siguiente tabla se enumeran las propiedades que se definen para crear una expresión de consulta.

Propiedad

Descripción

EntityName

Especifica que tipo de entidad se va a recuperar. Una expresión de consulta solo puede recuperar una colección de un tipo de entidad.

ColumnSet

Especifica el conjunto de atributos (columnas) que se va a recuperar.

Criteria

Especifica complejas expresiones de filtro condicionales y lógicas que filtran los resultados de la consulta.

Distinct

Especifica si los resultados de la consulta contienen registros duplicados.

LinkEntities

Especifica los vínculos entre varios tipos de entidad.

Orders

Especifica el orden en que los registros se devuelven desde la consulta.

PageInfo

Especifica el número de páginas y el número de registros por página devueltos por la consulta.

Recuento de registros

Para averiguar cuántos registros devuelve la consulta, establezca la propiedad ReturnTotalRecordCount en true antes de ejecutar la consulta. Al hacerlo, se establecerá TotalRecordCount. De lo contrario, esta valor será -1.

Ejemplo

En el siguiente ejemplo se muestra cómo usar la clase QueryExpression.

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

Ver también

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

Microsoft Dynamics 365

© 2017 Microsoft. Todos los derechos reservados. Copyright