我使用下面的平面查询来获取作为参数传递的工作项ID数组的错误详细信息。 下面的查询工作得很好,但在某些情况下会抛出错误" TF26180:输入数组中已存在具有此ID的项目" 原因是,ids数组有重复的id,在我的情况下是预期的。有没有办法忽略这个检查或通过这个?
var flatQuery = new Query(_store, detailsWiql.ToString(), ids);
WorkItemCollection workitems = flatQuery.RunQuery();
foreach (WorkItem wi in workitems)
{
WorkItemType worktype = wi.Type;
worktypename = worktype.Name;
}
提前致谢
答案 0 :(得分:0)
我认为我们无法忽略或通过此检查,Microsoft.TeamFoundation.WorkItemTracking.Common
程序集中定义了异常。见A flat query
这里有一个疑问,为什么你有重复的工作项目? 通常,工作项ID在TFS服务器中是唯一的。 我建议您先删除重复的工作项,然后根据需要进行备份,然后创建新的工作项以跟踪相关的任务/功能。
<强>更新强>
作为一种变通方法,您可以尝试使用带有REST API的WIQL查询来获取ID,请参阅Get a workitem with REST API。使用ID循环搜索工作项详细信息的编写代码。请参阅Wiql Editor。
此外,您可以试用https://css-tricks.com/full-width-containers-limited-width-parents/,它可以直接查询基本工作项信息。
答案 1 :(得分:0)
我遇到了类似的问题,因此在创建ids
数组时,我只是确保它是与众不同的:
// Capture ids of results in an array
var ids = (from WorkItemLinkInfo info in result select info.TargetId).Distinct().ToArray();
// Query a list of WorkItem IDs we want more info about
wiql = @"SELECT * FROM WorkItems";
q = new Query(App.workItemStore, wiql, ids);
var workItems = q.RunQuery();