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

TFS2015获取用户与共享查询所有者:用户查询所有者为空问题求助

解决TFS2015私有查询所有者显示Null的问题

针对你遇到的TFS2015中私有查询所有者返回Null的问题,我分两种方案给你解决:

一、SQL数据库查询方案

你当前的查询直接关联QueryItems.OwnerIdentifier是行不通的,因为TFS2015里只有私有查询的根文件夹(My Queries)会存储OwnerIdentifier,子查询的该字段为空。需要通过递归查询找到每个私有查询对应的根My Queries文件夹,再关联用户信息:

WITH QueryHierarchy AS (
    -- 初始节点:所有私有查询的根文件夹(My Queries)
    SELECT 
        qi.QueryItemId,
        qi.Name,
        qi.OwnerIdentifier,
        qi.ParentQueryItemId,
        qi.fPublic,
        qi.fFolder,
        qi.fDeleted
    FROM [Tfs_Development].[dbo].[QueryItems] qi
    WHERE qi.fPublic = 0 AND qi.fFolder = 1 AND qi.ParentQueryItemId IS NULL

    UNION ALL

    -- 递归子节点:所有私有查询/子文件夹
    SELECT 
        child.QueryItemId,
        child.Name,
        parent.OwnerIdentifier, -- 继承根文件夹的OwnerIdentifier
        child.ParentQueryItemId,
        child.fPublic,
        child.fFolder,
        child.fDeleted
    FROM [Tfs_Development].[dbo].[QueryItems] child
    INNER JOIN QueryHierarchy parent ON child.ParentQueryItemId = parent.QueryItemId
    WHERE child.fDeleted = 0
)

SELECT 
    qh.Name AS 'Query Name',
    c.DisplayPart AS 'Query Owner',
    qh.fPublic,
    qh.fFolder,
    qh.fDeleted
FROM QueryHierarchy qh
LEFT JOIN [Tfs_Development].[dbo].[Constants] c ON c.TeamFoundationId = qh.OwnerIdentifier
WHERE qh.fDeleted = 0
-- 可以根据需要筛选是否只看查询(非文件夹):AND qh.fFolder = 0

这个查询通过CTE递归遍历私有查询的层级结构,将根文件夹的所有者ID传递给所有子查询/文件夹,这样就能正确获取到私有查询的所有者了。

二、REST API方案

如果不想直接操作数据库,TFS2015的REST API可以更方便地获取查询及其所有者信息,只需要在请求中指定$expand=owner参数:

获取所有私有查询(含所有者)

发送GET请求到:

http://<你的TFS服务器地址>/tfs/<项目集合>/_apis/wit/queries/myQueries?api-version=1.0&$expand=owner

获取所有查询(私有+共享,含所有者)

发送GET请求到:

http://<你的TFS服务器地址>/tfs/<项目集合>/_apis/wit/queries?api-version=1.0&$expand=owner

返回的JSON数据中,每个查询对象的owner字段会包含用户的ID、显示名等信息,不需要手动关联数据库表,更安全可靠。

注意:使用REST API需要有对应的TFS权限,确保你有读取查询的权限。

内容的提问来源于stack exchange,提问作者W. Siegmund

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:09:14