我正在使用 Azure DevOps WIQL 查询。我们正在尝试对“WorkItems”进行查询,该查询返回大量记录,但还需要知道每个记录的父记录。我希望我能够查询“WorkItemLinks”,但我们收到了不同的结果。
这是我的 WIQL 语法,它返回我们正在查找的项目:
SELECT [System.Id] FROM WorkItems WHERE [State] = "To Do" AND [System.TeamProject] = @project
为了获取每个 WorkItem 的 ID,我需要发出 GET 请求来单独获取所有 WorkItem。我希望我能够使用像
这样的语法SELECT [System.Id] FROM WorkItemLinks WHERE [Target].[State] = "To Do" AND [Target].[System.TeamProject] = @project
乍一看,这在我看来应该返回与第一个查询相同的所有 WorkItem 的链接信息,但实际上它返回完全不同的结果。虽然包含了一些相同的工作项,但也有很多不包含在内,并且包含了许多第一次查询未找到的工作项。
有人可以解释为什么这两个查询返回完全不同的结果吗?
您似乎正在尝试查询链接的工作项:
SELECT [System.Id] FROM WorkItemLinks WHERE [Target].[State] = "To Do" AND [Target].[System.TeamProject] = @project
尝试查询来源项目:
SELECT [System.Id] FROM WorkItemLinks WHERE [Source].[State] = "To Do" AND [Source].[System.TeamProject] = @project
另外,您可以通过链接类型进行查询:
SELECT [System.Id] FROM WorkItemLinks WHERE [Source].[State] = "To Do" AND [Source].[System.TeamProject] = @project and [System.Links.LinkType] = 'System.LinkTypes.Hierarchy-Reverse' MODE (MayContain)
有用的链接: