如何更改 Team Foundation 查询中的运算符优先级(首先是 OR,然后是 AND)?

How to change operator precedence (first OR, then AND) in Team Foundation Queries?

背景:

Visual Studio 2015 允许对存储在 [=47= 中的工作项、错误等 创建 查询]Team Foundation Server (TFS)。 有一个查询编辑器,您可以在其中添加条件

这将return 当前项目中未关闭和解决的错误。到目前为止它工作正常,错误从外部系统 (HP ALM) 复制到 TFS。

如果我现在想限制仅分配给我的错误,我可以使用 "Assigned To" 字段并将其添加为条件,但 ALM 使用由 "HP ALM Assigned To" 跟踪的不同帐户领域。


所以我想创造一个像

这样的条件
(Team Project = @Project) AND (State <> Closed) AND (State <> Resolced)
AND (HP ALM Assigned To = "myALMID" OR Assigned To = @Me)

但是如您所见,查询编辑器不允许输入括号,上面显示的条件不正确,因为它将计算为

(Team Project = @Project) AND (State <> Closed) AND (State <> Resolced)
AND (HP ALM Assigned To = "myALMID") 
OR Assigned To = @Me

这似乎不一样 - 相反,它显示分配给 @Me 所有符合条件的项目

(Team Project = @Project) AND (State <> Closed) AND (State <> Resolced)
AND (HP ALM Assigned To = "myALMID") 

因为 AND 运算符优先于 OR


问题:
我需要更改什么才能使查询按预期工作?



更新: 我按照 的建议尝试了分组,但这也不 return 我想要的结果:

我尝试将 OR HP ALM Assigned To = "myALMID" 更改为 AND HP ALM Assigned To = "myALMID",但仍然不正确。

当您 select 两个或多个子句时,您可以将它们组合在一起。 UI 上应该有按钮,右键单击上下文菜单上应该有项目。

组子句对我有效。您可以检查字段 HP ALM Assigned To 是否有正确的值:

考虑到 and 的两个提示,我修改了查询如下:

可以看到现在返回的只有14条,是正确的。 问题似乎已解决,谢谢两位 - 我给你投了赞成票,因为你们都为解决方案做出了贡献。

现在让我总结一下,我从中学到的东西:

  • 条件出现的顺序似乎很重要。我将包含 HP Assigned to 和 Assigned to 的组移动到顶部,以便能够 select 在它们之间仅 "OR" 并将其组合在一起

  • 我在引号中包含了 ALM ID,这是错误的 - 所以我删除了它们。

  • 我将状态条件组合在一起(但我不确定是否需要)

遗憾的是,查询编辑器不允许 "Not In",只允许 "Not In Group",因此我不得不为每个要排除的状态重复 "State" 行。