C# 如何通过查询获取某人工作过的所有工作项?

C# 如何通过查询获取某人工作过的所有工作项?,c#,tfs,tfs-sdk,C#,Tfs,Tfs Sdk,我正在尝试(通过wql)获取所有已经完成的任务,这意味着有人为它们记录了时间。 现在,我在记忆中这样做: foreach (WorkItem wi in workItems) { foreach (Revision item in wi.Revisions) { try { // elided...

我正在尝试(通过wql)获取所有已经完成的任务,这意味着有人为它们记录了时间。 现在,我在记忆中这样做:

foreach (WorkItem wi in workItems)
        {
            foreach (Revision item in wi.Revisions)
            {
                try
                {
                     // elided...
                     myTask.TimeSpent = item.Fields["Completed Work"].Value == null ?
                     0 : (double)item.Fields["Completed Work"].Value;
                }
            }
         }
我希望能够在初始查询中这样做:

 var query = "SELECT [System.Id] FROM WorkItems
 WHERE [System.TeamProject] = '@project'
 and [System.WorkItemType]='Task' *and [System.WorkItem.Completed_Work] <> 0*";
var query=“从工作项中选择[System.Id]
其中[System.TeamProject]='@project'
和[System.WorkItemType]=“任务”*和[System.WorkItem.Completed_Work]0*”;
我尝试了不同的钻取“已完成工作”字段的方法:
[系统.工作项修订.已完成的工作],
[系统工作项[修订[已完成的工作]],
[系统工作项修订。[已完成工作]]

但我总是有例外。
有什么想法吗?

问题是您用于
已完成工作的引用名称,另一个问题是
@project
,因为该语句不是在项目上下文中调用的,因此
@project
不应该工作。下面是我如何使用它的示例:

string query = "SELECT [System.Id] FROM WorkItems WHERE [System.TeamProject] = '" + SelectedTeamProject + "' AND [System.WorkItemType]='Task' AND [Microsoft.VSTS.Scheduling.CompletedWork] <> 0";
Tools-> Process Editor-> Work Item Types-> Open WIT from Server
Choose the Team Project Collection and the TeamProject where the Task is in 
Open the Task definition and watch out for the Completed Work field and check the reference name for it