TFS API Web サービスを使用して、TFS から 1 回の旅行で作業項目とそれらにリンクされた作業項目のリストを取得できるかどうかを知っている人はいますか?
現時点では、最初の呼び出し中に作成された各作業項目に対して 2 回目の呼び出しを行う必要があり、パフォーマンスの問題が発生しています。
それが不可能な場合、リンクされたワークアイテムのタイプを取得せずに覗く方法はありますか?
回答で参照している記事には、 WIQLを使用して、目的を実行する方法が示されています。確かに、悪い選択ではありません。
私の意見では、もう 1 つの方法は、目的の結果が得られるクエリをグラフィカルに生成することです。おそらく、単純な「作業項目と直接リンク」が必要です:
保存すると、次のことができるようになります:
後半では、クエリの名前が「MyLinkedQuery」で、TeamProject「MyProj」の「Team Queries」の下にあると仮定すると、次のようなことができます。
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);
}
}
}
}
}
}