是否有人知道是否可以使用他們的TFS API網站從TFS一次旅程中檢索工作項目列表及其鏈接工作項目服務?使用TFS API在單個查詢中檢索工作項目及其鏈接的工作項目
目前,我們不得不第二次打電話給第一次打電話的每個工作項目,並且正在引入一個性能問題。
如果這不可能,是否有辦法查看鏈接工作項的類型而不檢索它們(例如,查看它是否是任務或問題)?
是否有人知道是否可以使用他們的TFS API網站從TFS一次旅程中檢索工作項目列表及其鏈接工作項目服務?使用TFS API在單個查詢中檢索工作項目及其鏈接的工作項目
目前,我們不得不第二次打電話給第一次打電話的每個工作項目,並且正在引入一個性能問題。
如果這不可能,是否有辦法查看鏈接工作項的類型而不檢索它們(例如,查看它是否是任務或問題)?
您在回答中提到的article提供了使用WIQL來完成您的操作的方法。當然,不是一個錯誤的選擇。
在我看來,更好的另一種方法是簡單地生成圖形化的查詢,以產生您之後的結果。你可能需要一個簡單的「工作項目和直接鏈接」:
一旦你保存你馬上就能到:
對於後者部分,假設你的查詢被命名爲「MyLinkedQuery」,它位於下TeamProject的「團隊查詢」「的Myproj」,你可以做這樣的事情:
using System;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.WorkItemTracking.Client;
namespace LinkedQueryResults
{
class Program
{
static void Main()
{
TfsTeamProjectCollection teamProjectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://TFSURL"));
var workItemStore = (WorkItemStore)teamProjectCollection.GetService(typeof(WorkItemStore));
var project = workItemStore.Projects["MyProj"];
QueryHierarchy queryHierarchy = project.QueryHierarchy;
var queryFolder = queryHierarchy as QueryFolder;
QueryItem queryItem = queryFolder["Team Queries"];
queryFolder = queryItem as QueryFolder;
if (queryFolder != null)
{
var myQuery = queryFolder["MyLinkedQuery"] as QueryDefinition;
if (myQuery != null)
{
var wiCollection = workItemStore.Query(myQuery.QueryText);
foreach (WorkItem workItem in wiCollection)
{
Console.WriteLine(workItem.Title);
}
}
}
}
}
}
是有保存查詢有任何性能優勢?我還有需要檢索的「第三」圖層上的項目,但我仍然無法想象如何去做。也就是說,錯誤鏈接到與需求工作項目鏈接的測試用例。 –
從TFS中檢索查詢應該具有性能損失。儘管如此,這將是最小的。主要的收穫是您可以在VS中查看結果並輕鬆而一致地維護結果。另一種選擇(在控制檯應用程序中使用硬編碼的WIQL字符串)可能從長遠來看證明維護性較差。 – pantelif
您提到的'第三'級別無法通過VS中的可視化生成的查詢訪問,但您可以使用C#來完成。 – pantelif