【问题标题】:How to query WorkItem History using Object Model?如何使用对象模型查询 WorkItem History?
【发布时间】:2010-06-25 04:06:34
【问题描述】:

我在 asp.net 中创建了代理并从 java 调用它。谢谢你的支持。现在,我想查询工作项历史记录以获取所有更改事件。举个例子。如果我更改错误的受理人,如 Studio 2010 的历史记录列中所示,我想查询历史记录,这应该导致 xyz 工作项已从旧值更改为新值。我试图查询 WorkItems 如下:

String queryWorkItemByDate = "SELECT * FROM WorkItems WHERE [System.TeamProject] = '" + projectName + "' and [System.WorkItemType] = 'Bug' and [System.ChangedDate] >= '6/22/2010 6:00:00 PM'";

但是,这个查询给出了工作项的当前状态而不是历史。如何使用对象模型查询 WorkItem History?

问候。

里迪沙阿

【问题讨论】:

    标签: tfs


    【解决方案1】:

    您将需要查看嵌入式修订集以了解发生了什么变化。

        TeamFoundationServer tfs = new TeamFoundationServer("http://tfs:8080");
        tfs.EnsureAuthenticated();
    
        WorkItemStore wis = tfs.GetService<WorkItemStore>();
    
        var results = wis.Query("select * from workitems where [System.WorkitemType] = 'Bug'");
    
        WorkItem wi = results[0];
    
        foreach (Revision r in wi.Revisions)
        {
            System.Diagnostics.Debug.WriteLine("Revisions:");
    
            for(int i = 0; i < r.Fields.Count; i++)
            {
                string revisionText = string.Format("Field {0} was '{1}' and is now '{2}'",
                                                   r.Fields[i].Name,
                                                   r.Fields[i].OriginalValue,
                                                   r.Fields[i].Value);
    
                System.Diagnostics.Debug.WriteLine(revisionText);
                }
    
        }
    

    【讨论】:

    • 嗨,非常感谢您的解决方案。这具有迭代所有修订的缺点。我的目标是,我应该直接获得在特定日期之后完成的修订。我认为,WIQL 不支持查询修订。我也尝试在数据库中查看。但是直到现在我还没有找到这些数据保存在哪里(在哪个表中)的运气。如果您对此有任何线索,请告诉我。再次感谢您的回复。问候, Riddhi Shah
    • 您在查看哪个数据库? TFSWarehouse?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    • 2012-04-08
    • 1970-01-01
    相关资源
    最近更新 更多