我试图在所需的与会者中获得具有特殊列表帐户的约会。这是我如何构建查询。
var query = new QueryExpression("appointment")
{
ColumnSet = columnSet,
Criteria = new FilterExpression(LogicalOperator.And)
{
Conditions =
{
new ConditionExpression("scheduledstart", ConditionOperator.GreaterEqual, DateTime.Now),
new ConditionExpression("scheduledstart", ConditionOperator.LessEqual, DateTime.Now.AddYears(1)),
new ConditionExpression("statuscode", ConditionOperator.In, new []{1, 5})
}
}
};
var le = new LinkEntity
{
LinkFromEntityName = "activitypointer",
LinkFromAttributeName = "activityid",
LinkToEntityName = "activityparty",
LinkToAttributeName = "activityid",
LinkCriteria = new FilterExpression
{
FilterOperator = LogicalOperator.Or,
Conditions =
{
new ConditionExpression("partyid", ConditionOperator.Equal, accountGuid)
}
}
};
为链接表达式添加条件
_accountRepository.GetAccounts()
.Select(a => new ConditionExpression("partyid", ConditionOperator.Equal, a.Id))
.ForEach(c => le.LinkCriteria.AddCondition(c));
此请求需要大约20秒才能执行。 有什么想法吗?
答案 0 :(得分:0)
我发现使用日期字段执行查询(正如您所做的那样 - 使用scheduledstart)可能会很慢。
原因是CRM需要将字段转换为本地时间,这似乎很慢。
你可以尝试:
麦克