title: TFS API - How to obtain the parent of a work item
body: <p>My ultimate goal is to get the parent of one work item at a time recursively, until there are no more parents in the hierarchy. At the moment, there is nothing recursive yet, I am still at the point of optimizing the way I obtain the parent work item. I have thought of a way of doing this involving a query:</p>
  
  <pre><code>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;
  }
  </code></pre>
  
  <p>The problem with this method is that it gets all the linked work items, including predecessor, successor, child and parents. I knew that <code>wiTrees[1]</code> was the parent work item so I hard coded the index.</p>
  
  <p>I found out a way to get the "parent" <code>WorkItemTypeEnd</code> object from the work item store:</p>
  
  <pre><code>WorkItemLinkTypeEnd linkTypEnd = GetWorkItemStore.WorkItemLinkTypes.LinkTypeEnds["Parent"];
  </code></pre>
  
  <p>Where do I go from here?</p>