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).