如何从TFS获取子工作项的激活日期和关闭日期

时间:2014-07-28 09:27:44

标签: tfs tfs2012 tfs-workitem

我想获得子工作项的激活和关闭日期,我使用以下查询:

{SELECT
[System.Id]
,[System.Links.LinkType]
,[System.WorkItemType]
,[System.Title]
,[System.AssignedTo]
,[System.CreatedDate]
,[System.ChangedDate]
,[Microsoft.VSTS.Common.ClosedDate]
,[Microsoft.VSTS.Common.ActivatedDate]
FROM WorkItems Where [System.Id] = 27279
}

我正在收集如下结果:

 var flatQuery = new Query(workItemStore, detailsWiql.ToString());
 var workitems = flatQuery.RunQuery();
 var dispItem = new DisplayWorkItem
                {

                                ChangedBy = workitems[0].ChangedBy,
                                CreatedDate =  workitems[0].CreatedDate,
                                WorkItemType = workitems[0].Type.Name,
                                ParentID = links[i].TargetId
                 };
                 displayItems.Add(dispItem);

问题在于使用。运营商我看到一个列表,其中“激活日期和关闭日期”选项不可用。

我在哪里犯错误?

2 个答案:

答案 0 :(得分:0)

这有点难以遵循,但如果您只是在寻找特定或已知的工作项目。 27279;为什么要运行查询,只需在WorkItemStore对象中使用GetWorkItem方法。

var wi = workItemStore.GetWorkItem(27279);
foreach(var link in wi.WorkItemLinks)
{
     if(link.LinkTypeEnd.Name == "Child")
     {
         var child = workItemStore.GetWorkItem(link.TargetID)
         child["Closed Date"]
     } 
}

答案 1 :(得分:0)

您需要指定workitem [0] .Fields [" System.ActivatedDate"]。值以获取您之后的数据。还要记住,该字段可能不可用或可能未设置。一点防御性编程,你很高兴。

您需要将这些字段指定为查询返回,这样您就不需要使用workitem [0] .Open()来获取完整的工作项。如果你需要使用。打开它会减慢代码的速度。

此外,您还需要创建工作项和直接链接查询。最简单的方法是在visual studio中构建所需的查询,然后将其保存到桌面。