TF26180:输入数组中已存在具有此ID的项目

时间:2017-12-06 03:35:25

标签: tfs

我使用下面的平面查询来获取作为参数传递的工作项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;
   }

提前致谢

2 个答案:

答案 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();