【发布时间】:2014-01-27 18:45:32
【问题描述】:
我的最终目标是递归地一次获取一个工作项的父级,直到层次结构中不再有父级。目前,还没有递归,我仍在优化获取父工作项的方式。我想到了一种涉及查询的方法:
public WorkItem GetParentWorkItem(int id)
{
StringBuilder queryString = new StringBuilder("SELECT [System.Id]" +
" FROM WorkItemLinks " +
" WHERE [Source].[System.WorkItemType] = '" + TFS_TIMESHEET_WORK_ITEM_TYPE + "'" +
" AND [Source].[System.TeamProject] = '" + TFS_TIMESHEET_PROJECT_KEY + "'" +
" AND [Source].[System.Id] = " + id
);
Query wiQuery = new Query(GetWorkItemStore, queryString.ToString());
WorkItemLinkInfo[] wiTrees = wiQuery.RunLinkQuery();
WorkItem wi = GetWorkItemStore.GetWorkItem(wiTrees[1].TargetId);
return wi;
}
这种方法的问题是它获取了所有链接的工作项,包括前任、继任者、孩子和父母。我知道wiTrees[1] 是父工作项,所以我对索引进行了硬编码。
我找到了一种从工作项存储中获取“父”WorkItemTypeEnd 对象的方法:
WorkItemLinkTypeEnd linkTypEnd = GetWorkItemStore.WorkItemLinkTypes.LinkTypeEnds["Parent"];
我该去哪里?
【问题讨论】: