Compartir vía


Usar la clase QueryExpression

En Microsoft Dataverse puede usar la clase QueryExpression para construir consultas complejas para su uso con el IOrganizationService.RetrieveMultiple el método 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 un instrumento sencillo para buscar filas de tabla en las que las columnas coinciden con los valores especificados.

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, este valor es -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("---------------------------------------");  

Usar sugerencias en una consulta SQL

La clase QueryExpression contiene una propiedad denominada QueryHints. Al establecer esta propiedad en uno de los valores de cadena admitidos que se muestran a continuación, puede proporcionar una pista para el texto SQL generado que afecta la ejecución de la consulta.

Valor de QueryHint Opción y consulta de SQL Query
OptimizeForUnknown Optimizar para desconocido
ForceOrder Forzar orden
DisableRowGoal use hint('Disable_Optimizer_RowGoal')
EnableOptimizerHotfixes use hint('ENABLE_QUERY_OPTIMIZER_HOTFIXES')
LoopJoin Combinación de bucle
MergeJoin Combinación de mezcla
HashJoin Combinación hash
NO_PERFORMANCE_SPOOL NO_PERFORMANCE_SPOOL
MaxRecursion Número MAXRECURSION
ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS

Más información: Sugerencias (Transact-SQL) - Consulta

Consultar también

Generar consultas con QueryExpression
Utilizar la clase ColumnSet
Uso de la clase ConditionExpression
Usar la clase FilterExpression
QueryExpression

Nota

¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)

La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).