我正在尝试构建一个tfs查询,它只返回分配给我的最顶层项目。 例子:
我努力弄明白,如何访问任务的父级,或者这甚至不是正确的方法。我正在与VS和TFS 2010合作。想法?
[编辑] 另一个想法是写一个wiql查询,找到分配给我的所有项目,然后检查链接是否有一些属性,但我不确定。在TFS2013中应该有类似的东西(“匹配顶级工作项”),除非这只是一个排序选项。
答案 0 :(得分:1)
一个查询无法做到这一点,至少需要2个,因为您无法将链接过滤器与查询的某些部分组合在一起:
WorkItemType = UserStory AND AssignedTo = @ME
WorkItemType = Task AND AssignedTo = @ME
关联工作项的过滤器:
WorkItemType = UserStory AND AssignedTo<> @ME
返回所有顶级工作项
第一个查询将列出分配给您的所有用户故事,无论是否链接了某些内容。第二个查询将列出分配给您的所有任务,但没有分配给您的UserStory链接。
[编辑]
另一种选择可能是将两个查询组合在一起,但我无法在我的环境中对其进行测试:
(WorkItemType = Task OR WorkItemType =用户故事)AND AssignedTo = @ME
关联工作项的过滤器:
WorkItemType = UserStory AND AssignedTo<> @ME
返回所有顶级工作项
这将列出分配给您的所有用户故事和任务,但没有链接父用户故事。
[EDIT2]
<?xml version="1.0" encoding="utf-8"?><WorkItemQuery Version="1"><TeamFoundationServer>http://tfs:8080/tfs/DefaultCollection</TeamFoundationServer><TeamProject>Test</TeamProject><Wiql>SELECT [System.Id], [System.Links.LinkType], [System.WorkItemType], [System.Title], [System.AssignedTo], [System.State] FROM WorkItemLinks WHERE ([Source].[System.TeamProject] = @project AND ( [Source].[System.WorkItemType] = 'Task' OR [Source].[System.WorkItemType] = 'UserStory' ) AND [Source].[System.AssignedTo] = @me) And ([System.Links.LinkType] <> '') And ([Target].[System.WorkItemType] = 'UserStory' AND [Target].[System.AssignedTo] <> @me) ORDER BY [System.Id] mode(MayContain)</Wiql></WorkItemQuery>