TFS API实现了这个类:
如何使用WIQL查询和TFS API来获取自给定日期以来添加或更改了父/子链接的所有工作项?我怀疑使用WorkItemLinks表是一个开始的地方,但我发现很少或没有关于提供的字段的文档。此外,请务必注意,更改工作项链接不会影响工作项的更改日期字段。我怀疑这是因为链接有自己更改/创建的日期字段。我希望在平面列表视图中获取这些项目。我有什么选择?**
答案 0 :(得分:0)
我找到了另一种方法来帮助你。使用工作项查询来查找这些工作项似乎无法做到这一点。但您可以使用此方法:查找每个工作项的workitemLinks,检查其链接类型是否为“父/子”,并检查其添加/删除日期是否在您的时间段内。
var workItemStore = teamProjectCollection.GetService<WorkItemStore>();
var queryString = @"select [System.Id], [System.WorkItemType], [System.Title], [System.AssignedTo], [System.State], [System.Tags]
from WorkItemLinks
where (
Source.[System.TeamProject] = 'Mtt-Scrum'
and Source.[System.WorkItemType] <> ''
) and (
[System.Links.LinkType] = 'System.LinkTypes.Hierarchy-Forward'
or [System.Links.LinkType] = 'System.LinkTypes.Hierarchy-Reverse'
) and (
Target.[System.TeamProject] = 'Mtt-Scrum'
and Target.[System.WorkItemType] <> ''
)
order by [System.Id] mode (MustContain)";
// Create and run the query.
var query = new Query(workItemStore, queryString);
WorkItemLinkInfo[] witLinkInfos = query.RunLinkQuery();
foreach (WorkItemLinkInfo witinfo in witLinkInfos)
{
if (witinfo.SourceId == 0) //find those workitems which are not at top-level
{
int targetWIid = witinfo.TargetId;
WorkItem workItem = workItemStore.GetWorkItem(targetWIid); //get the workitem
foreach (WorkItemLink wiLink in workItem.WorkItemLinks)
{
if (wiLink.LinkTypeEnd.Name.Equals("Parent") || wiLink.LinkTypeEnd.Name.Equals("Child"))
{
if (DateTime.Compare(wiLink.AddedDate, 'yourDate') < 0)
{
......
}
}
}
}
}