2016-06-17 75 views
0

如何通过查询WorkItem存储的修订字段获取WorkItem集合。如何通过其修订字段查询TFS工作项目

WorkItemCollection WIC = WIS.Query(
       " SELECT * " + 
       " FROM WorkItems " + 
       " WHERE [System.TeamProject]='project1' AND [Work Item Type]='Bug' AND [System.Revision.ChangedBy][email protected] ORDER BY [System.WorkItemType], [System.Id]"); 

我需要一个工作项收藏这样,但在[System.Revision.ChangedBy]

产生的错误有没有什么办法让一个工作项目的集合,其修订版changedby = @我

即 - 如果一个工作项的修订工作,通过我改变了至少一个记录,我需要在我的工作项目集合

我试过很多方法,但没有找到一个解决办法。

我尝试通过获取所有工作项目,然后尝试找到每个工作项目的修订值,但它需要很长时间才能执行。这就是为什么我需要得到工作项目集合时对其进行过滤,

感谢

回答

0

不,你不能在WIQL脚本中使用“System.Revision.ChangedBy”。而且你不能在API中使用“@me”宏,它只能在TFS Web Portal或Team Explorer中使用。

实现所需功能的方法与您所说的一样,首先通过WIQL获取工作项目,然后检查所有项目的修订版本。一些代码供你参考:

 string tfsurl = "http://xxxxxxxxxx/"; 
     TfsTeamProjectCollection ttpc = new TfsTeamProjectCollection(new Uri(tfsurl)); 
     WorkItemStore wis = ttpc.GetService<WorkItemStore>(); 
     WorkItemCollection wic = wis.Query(" SELECT * " + " FROM WorkItems " + "WHERE [System.TeamProject]='GitBuildRelease' AND [Work Item Type]='Bug'"); 
     List<WorkItem> wies = new List<WorkItem> { }; 
     foreach (WorkItem wi in wic) 
     { 
      foreach (Revision rev in wi.Revisions) 
      { 
       if (rev.Fields["Changed By"].Value.ToString() == "yourdisplayname") 
       { 
        wies.Add(rev.WorkItem); 
        break; 
       } 
      } 
     } 
+0

那就是我开发的,问题是它太慢了,当没有工作项目增加时,无论如何thnks –

相关问题