けさらんぱさらん

方向性は定めず、ただ思いつくままに

TFSのwiqlではまったこと

TFSの作業項目をプロジェクト横断的に取得したくて
ここ見て作ってたら見事の嵌められたのでメモっておきます。

例に倣ってこんな感じで作ります。

var tpc = new TfsTeamProjectCollection(
        new Uri("http://localhost:8080/tfs/DefaultCollection"));
var workItemStore = (WorkItemStore)tpc.GetService(typeof(WorkItemStore)); 
var queryResults = 
    workItemStore.Query("Select [State], [Title] From WorkItems Where [Work Item Type] = 'User Story' Order By [State] Asc, [Changed Date] Desc");

これを実行すると
f:id:cer1974:20131008223036p:plain:w400
Stateが無いとかエラーが出ます。絶対にあるのに!!


なんだかんだ色々試した結果

var tpc = new TfsTeamProjectCollection(
        new Uri("http://localhost:8080/tfs/DefaultCollection"));
var workItemStore = (WorkItemStore)tpc.GetService(typeof(WorkItemStore)); 
var queryResults =
    workItemStore.Query("Select [System.State], [System.Title] From WorkItems");

カラム名の前にSystem.を付けるとちゃんとデータが取得できる!
でもカラム名に半角スペース付いているとエラーになる! まだ回避方法がわからん
でも今、作っているプログラムは半角スペースがあるカラムは必要ないので掘り下げないかもね