You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用C#调用Azure DevOps中的Analytics视图数据?

使用Simple.OData.Client调用Azure DevOps Analytics视图
  • 第一步:确认Analytics视图的OData集合名称
    在Azure DevOps中打开你的Analytics视图,点击「导出到Power BI」,弹出的对话框里会显示完整的OData URL,URL末尾的部分就是集合名称(比如http://myServer/tfs/myOrg/myTeam/_odata/V3.0/My_Analytics_View里的My_Analytics_View)。如果视图名称包含空格或特殊字符,会自动转成下划线。

  • 第二步:调用视图获取数据
    用Simple.OData.Client的For方法指定集合名称,再通过FindEntriesAsync获取数据,示例代码如下:

using Simple.OData.Client;
using System.Net;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        var settings = new ODataClientSettings("http://myServer/tfs/myOrg/myTeam/_odata/V3.0/", 
            new NetworkCredential("myName", "myPw", "myDomain"));
        // 如果是Azure DevOps Services云版本,建议用PAT验证:
        // settings.BeforeRequest += request => request.Headers.Add("Authorization", $"Basic {Convert.ToBase64String(Encoding.ASCII.GetBytes($":{yourPAT}"))}");
        var client = new ODataClient(settings);

        // 替换成你的Analytics视图对应的集合名称
        var viewName = "My_Analytics_View";

        // 基础查询:获取所有数据
        var entries = await client.For(viewName).FindEntriesAsync();

        // 带筛选和字段选择的查询示例
        var filteredEntries = await client.For(viewName)
            .Filter(item => item["State"] != "Closed")
            .Select(item => new { item.Id, item.Title, item.State, item.CreatedDate })
            .OrderBy(item => item["CreatedDate"])
            .FindEntriesAsync();

        // 遍历输出结果
        foreach (var entry in filteredEntries)
        {
            Console.WriteLine($"ID: {entry["Id"]}, Title: {entry["Title"]}, State: {entry["State"]}");
        }
    }
}
  • 第三步:处理带参数的Analytics视图
    如果你的视图定义了参数(比如日期范围),需要通过WithParameters传递参数值:
var parameters = new Dictionary<string, object>
{
    { "StartDate", new DateTime(2024, 1, 1) },
    { "EndDate", DateTime.UtcNow }
};

var parameterizedEntries = await client.For(viewName)
    .WithParameters(parameters)
    .FindEntriesAsync();
  • 注意事项
    • 确保你的账号拥有该Analytics视图的访问权限,以及Azure DevOps项目的相应权限。
    • 若使用Azure DevOps Services云版本,不建议用域账号验证,推荐使用个人访问令牌(PAT),需授予Analytics Read权限。
    • 遇到401/403错误时检查验证信息和权限配置;遇到404错误时确认集合名称和OData端点路径是否正确。

内容的提问来源于stack exchange,提问作者Cogeck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 22:41:24