I am trying to query a single team project in the main TfsTeamProjectCollection
which contains 194 Team Projects in total. I know exactly how to get a WorkIte
You could try something like this for getting all WIs within 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]");
And this to get a specific WorkItem ID:
WorkItem workItem = workItemStore.GetWorkItem(555);
It's probably most efficient to use a query to find the workitems you're interested in. You can add a Where project = '@Project' to the query to limit the scope to just that project. By first calling BeginQuery and then EndQuery you'll get a workitem collection for just the items you were looking for.
The easiest way to get the required wql query is to create a query in Team Explorer, then use file->save as (in edit mode) to save it to file. Open that file in Notepad to copy the query out of there.
Alternatively you can use the WorkItemStore.Query method directly to achieve the same thing.