我当前正在尝试检索分配给特定安全性角色的所有系统用户或被分配给具有安全角色的团队。构建查询时,似乎只能通过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
过滤器应用于两个链接的实体?
我已经使用两个提取表达查询找到了一项工作,然后将两个结果合并并进行独特的计数,但我很好奇查询表达式是否有一个查询来进行。
不,不可能包装LinkEntity
加入FilterExpression
。
实际上,关于链接实体,QueryExpression
的过滤功能相当有限。例如。您无法查询没有特定实体类型的相关记录的记录。