如何通过使用修订字段查询WorkItem存储来获取WorkItem集合。
WorkItemCollection WIC = WIS.Query(
" SELECT * " +
" FROM WorkItems " +
" WHERE [System.TeamProject]='project1' AND [Work Item Type]='Bug' AND [System.Revision.ChangedBy]=@Me ORDER BY [System.WorkItemType], [System.Id]");
我需要这样的工作项集合,但是在[System.Revision.ChangedBy]生成的错误
有没有办法让工作项集合的修订版更改为= @ me
即如果一个工作项目的修订版本至少有一条记录由我改变,我需要在我的工作项目集合中
我试过很多方法但还没有找到解决方案。
我尝试了获取所有工作项,然后尝试查找每个工作项的修订值,但执行需要很长时间。这就是为什么我需要在获取workItem集合时过滤它们,
感谢
答案 0 :(得分:1)
不,你不能在WIQL脚本中使用“System.Revision.ChangedBy”。并且您也不能在API中使用“@me”宏,它只能在TFS Web Portal或团队资源管理器中使用。
实现所需功能的方法与您所说的一样,首先通过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;
}
}
}