有谁知道是否可以使用他们的 TFS API Web 服务从 TFS 一次旅行中检索工作项列表及其链接的工作项?
目前,我们不得不为第一次调用期间所做的每个工作项进行第二次调用,并引入了性能问题。
如果这不可能,有没有办法在不检索它们的情况下查看链接工作项的类型(例如查看它是任务还是问题)?
您在回答中提到的文章提供了一种使用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);
}
}
}
}
}
}