JF *_*ieu 38 c# tfs tfs-sdk tfs2010
我正在尝试查询主要的单个团队项目,TfsTeamProjectCollection
其中总共包含194个团队项目.我确切地知道如何WorkItem
通过Id得到一个WorkItemStore
.问题是,通过这样做,API搜索集合中的所有项目,查询大约需要一分钟.这太慢了,必须有一种直接从单个团队项目查询工作项的方法吗?这是我的代码:
private Uri collectionUri;
private TfsTeamProjectCollection projectCollection;
private WorkItemStore workItemStore;
public Project GetTeamProject()
{
projectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(collectionUri);
workItemStore = projectCollection.GetService<WorkItemStore>();
Project teamProject = workItemStore.Projects[TFS_PROJECT_KEY];
return teamProject;
}
Run Code Online (Sandbox Code Playgroud)
既然我有我感兴趣的团队项目,我如何通过ID查询工作项或者只获取该项目中的所有工作项?
pan*_*lif 35
您可以尝试这样的方法来获取所有WI teamProject
:
WorkItemCollection workItemCollection = workItemStore.Query(
" SELECT [System.Id], [System.WorkItemType],"+
" [System.State], [System.AssignedTo], [System.Title] "+
" FROM WorkItems " +
" WHERE [System.TeamProject] = '" + teamProject.Name +
"' ORDER BY [System.WorkItemType], [System.Id]");
Run Code Online (Sandbox Code Playgroud)
这是为了获得特定的WorkItem ID:
WorkItem workItem = workItemStore.GetWorkItem(555);
Run Code Online (Sandbox Code Playgroud)
jes*_*ing 15
使用查询来查找您感兴趣的工作项可能是最有效的.您可以在查询中添加Where project ='@ Project',以将范围限制为该项目.通过首先调用BeginQuery然后调用EndQuery,您将获得仅针对您正在寻找的项目的工作项集合.
获取所需wql查询的最简单方法是在团队资源管理器中创建查询,然后使用file-> save as(在编辑模式下)将其保存到文件.在记事本中打开该文件以从中复制查询.
或者,您可以直接使用WorkItemStore.Query方法来实现相同的功能.