我的最終目標是獲得一個工作項目的母體在時間遞歸,直到沒有更多的家長在層次中。目前,沒有任何遞歸然而,我仍然是優化我得到父母的工作項目的方式點。我已經想到了這樣做涉及查詢的一種方式:TFS API - 如何獲取一個工作項的父
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"];
我在哪裏何去何從?
您可以使用模式(mustcontain)獲取僅使用指定的鏈接類型的查詢擴展您的查詢,你肯定知道你檢索這樣是正確的:'SELECT [System.Id] FROM WorkItemLinks WHERE([來源] [System.WorkItemType] = '用戶故事'。) 和([System.Links.LinkType] = '父')) 模式(MustContain)'(參見:http://msdn.microsoft.com/en-us/library/bb130306.aspx#sectionToggle2) – jessehouwing 2012-02-20 22:33:16