したがって、特定のWorkItemがあり(ID = 1000と仮定します)、それに関連するWorkItemを追加します(ID = 1001と仮定します)。
単に行く
workItem.Links.Add(newLink);
WI1001がすでにWI1000のリンクである場合に提供した例外がスローされるため、機能しません。
したがって、追加する前に、WI1001がすでに1000のリンクにあるかどうかを確認する必要があります。これは次のように可能でした:
WorkItem workItem = workItemStore.GetWorkItem(1000);
LinkCollection links = workItem.Links;
List<int> relatedWorkItemIds = new List<int>();
foreach (var link in links)
{
relatedWorkItemIds.Add(((Microsoft.TeamFoundation.WorkItemTracking.Client.RelatedLink) (link)).RelatedWorkItemId);
}
if(relatedWorkItemIds.Contains(1001))
{
return;
}
else
{
WorkItemLinkTypeEnd linkTypeEnd = workItemStore.WorkItemLinkTypes.LinkTypeEnds["Child"];
RelatedLink newLink = new RelatedLink(linkTypeEnd, 1001);
workItem.Links.Add(newLink);
}
答えに向けて取り組んでいる私は、あなたが直接「WorkItem.Links.Contains()に何をするのか」と尋ねることに気づきました。->答えがありません。
私が上で実装したものをどうにかして利用できることを願っています。