2016-06-17 10 views
0

リビジョンのフィールドを使用してWorkItemストアにクエリを送信して、ワークアイテムコレクションを取得する方法。TFSワークアイテムをリビジョンフィールドで照会する方法

WorkItemCollection WIC = WIS.Query(
       " SELECT * " + 
       " FROM WorkItems " + 
       " WHERE [System.TeamProject]='project1' AND [Work Item Type]='Bug' AND [System.Revision.ChangedBy][email protected] ORDER BY [System.WorkItemType], [System.Id]"); 

私はそのような作業項目のコレクションが必要ですが、[System.Revision.ChangedBy]

で発生したエラーは、その彼らの改正changedby = @私の作業項目のコレクションを取得する方法はあります

IE-1のワークアイテムのリビジョンは、私が変わっ少なくとも1つのレコードを持っている場合、私は自分の作業項目のコレクション

でそれを必要とする、私は多くの方法で試してみましたが、まだ解決策を見つけていません。

私はすべての作業項目を取得してから、各作業項目のリビジョン値を見つけようとしましたが、実行に多くの時間がかかります。私はのworkItemコレクションを取得するときにそれらをフィルタリングする必要がある理由は、

おかげ

答えて

0

いいえ、あなたはWIQLスクリプトで「System.Revision.ChangedBy」を使用することはできませんです。また、APIで "@me"マクロを使用することはできません.TFS Web PortalまたはTeam Explorerでのみ使用できます。

あなたが望む機能を実現する方法は、あなたが言うように、まずWIQLで作業項目を取得し、すべてのリビジョンをチェックします。あなたの参照のためのいくつかのコード:

 string tfsurl = "http://xxxxxxxxxx/"; 
     TfsTeamProjectCollection ttpc = new TfsTeamProjectCollection(new Uri(tfsurl)); 
     WorkItemStore wis = ttpc.GetService<WorkItemStore>(); 
     WorkItemCollection wic = wis.Query(" SELECT * " + " FROM WorkItems " + "WHERE [System.TeamProject]='GitBuildRelease' AND [Work Item Type]='Bug'"); 
     List<WorkItem> wies = new List<WorkItem> { }; 
     foreach (WorkItem wi in wic) 
     { 
      foreach (Revision rev in wi.Revisions) 
      { 
       if (rev.Fields["Changed By"].Value.ToString() == "yourdisplayname") 
       { 
        wies.Add(rev.WorkItem); 
        break; 
       } 
      } 
     } 
+0

それは私が開発したもの、それは仕事がないときには遅すぎる問題ですとにかくthnks –

関連する問題