Фильтр или условие выражения запроса Dynamics CRM для двух связанных объектов
В настоящее время я пытаюсь получить всех системных пользователей, которым назначена определенная роль безопасности или назначена команда, имеющая роль безопасности. при построении запроса, кажется, только фильтровать их по and
условие при написании запроса таким образом:
QueryExpression RolesQuery = new QueryExpression
{
EntityName = "systemuser",
ColumnSet = new ColumnSet("systemuserid"),
Distinct = true,
Criteria =
{
Filters =
{
new FilterExpression
{
FilterOperator = LogicalOperator.And,
Conditions =
{
new ConditionExpression("isdisabled", ConditionOperator.Equal, "0")
}
}
}
},
LinkEntities =
{
new LinkEntity
{
LinkFromEntityName = "systemuser",
LinkToEntityName = "systemuserroles",
LinkFromAttributeName = "systemuserid",
LinkToAttributeName = "systemuserid",
LinkCriteria =
{
Filters =
{
new FilterExpression
{
FilterOperator = LogicalOperator.And,
Conditions =
{
new ConditionExpression("roleid", ConditionOperator.Equal, "00000000-0000-0000-0000-000000000000")
}
}
}
}
},
new LinkEntity
{
LinkFromEntityName = "systemuser",
LinkToEntityName = "teammembership",
LinkFromAttributeName = "systemuserid",
LinkToAttributeName = "systemuserid",
LinkEntities =
{
new LinkEntity
{
LinkFromEntityName = "teammembership",
LinkToEntityName = "team",
LinkFromAttributeName = "teamid",
LinkToAttributeName = "teamid",
LinkEntities =
{
new LinkEntity
{
LinkFromEntityName = "team",
LinkToEntityName = "teamroles",
LinkFromAttributeName = "teamid",
LinkToAttributeName = "teamid",
LinkCriteria =
{
Filters =
{
new FilterExpression
{
FilterOperator = LogicalOperator.And,
Conditions =
{
new ConditionExpression("roleid", ConditionOperator.Equal, "00000000-0000-0000-0000-000000000000")
}
}
}
}
}
}
}
}
}
}
};
Мой вопрос: есть ли способ применить or
фильтр на две связанные сущности?
Я нашел способ использования двух запросов к выражениям выборки, затем слияния двух результатов и подсчета, но мне просто любопытно, есть ли способ выражения запроса сделать это в одном запросе.
1 ответ
Нет, не возможно завернуть LinkEntity
присоединяется к FilterExpression
,
Фактически, в отношении сущностей ссылок, возможности фильтрации QueryExpression
довольно ограничен. Например, вы не можете запрашивать записи, которые не имеют связанных записей определенного типа сущности.