API TFS - Comment obtenir le parent d'un élément de travail

Mon but ultime est d'obtenir le parent d'un élément de travail à un moment récursivement, jusqu'à ce qu'il n'y a pas plus de parents dans la hiérarchie. Pour le moment, il n'y a rien récursive encore, je suis toujours à la point de l'optimisation de la façon dont je obtenir le parent de l'élément de travail. J'ai pensé à une façon de faire cela impliquant une requête:

public WorkItem GetParentWorkItem(int id)
{
    StringBuilder queryString = new StringBuilder("SELECT [System.Id]" +    
                                                  " FROM WorkItemLinks " +
                                                  " WHERE [Source].[System.WorkItemType] = '" + TFS_TIMESHEET_WORK_ITEM_TYPE + "'"  +
                                                  " AND [Source].[System.TeamProject] = '" + TFS_TIMESHEET_PROJECT_KEY + "'" +
                                                  " AND [Source].[System.Id] = " + id 
                                                  );
    Query wiQuery = new Query(GetWorkItemStore, queryString.ToString());
    WorkItemLinkInfo[] wiTrees = wiQuery.RunLinkQuery();
    WorkItem wi = GetWorkItemStore.GetWorkItem(wiTrees[1].TargetId);

    return wi;
}

Le problème avec cette méthode est qu'il obtient toutes les éléments de travail, y compris prédécesseur, successeur, de l'enfant et les parents. Je savais que wiTrees[1] était le parent de l'élément de travail donc j'ai codé en dur à l'index.

J'ai trouvé un moyen d'obtenir le "parent" WorkItemTypeEnd objet de l'élément de travail magasin:

WorkItemLinkTypeEnd linkTypEnd = GetWorkItemStore.WorkItemLinkTypes.LinkTypeEnds["Parent"];

Où dois-je aller d'ici?

OriginalL'auteur JF Beaulieu | 2012-02-17