0

WIQL where 句のカスタム フィールドを使用して、TFS API および WIQL 経由で TFS データにアクセスしたかったのです。

string wiqlQueryDoorsProxy = "Select * from WorkItems where ([Work Item Type] = 'DoorsProxy' AND [Object Id] = '\" + requirementId + "\')";

[Object Id] はカスタム フィールドです。しかし、TFS API は例外メッセージを出しました:

"TF51005: The query references a field that does not exist. The error is caused by «[Object Id]»."

フィールド定義の名前は「オブジェクト ID」、参照名は「DoorsTool.DoorsArtifactType.ObjectId」です。WIQL で Object Id と DoorsTool.DoorsArtifactType.ObjectId の両方を試しました。同じ結果です。

次のようにコードを変更したところ、完全に機能しました。

string wiqlQueryDoorsProxy ="Select * from WorkItems where ([Work Item Type] = 'DoorsProxy' )"; WorkItemCollection witCollectionDoorsProxy = wiStore.Query(wiqlQueryDoorsProxy); foreach (WorkItem workItemDoorsProxy in witCollectionDoorsProxy) { workItemDoorsProxy.Open(); if (workItemDoorsProxy.Fields["Object Id"].OriginalValue.ToString() == requirementId) { ... } }

しかし、今のパフォーマンスは悪いです。

私に何ができる。問題はこれに似ていますが、その議論に基づいて問題を解決することはできません。

4

1 に答える 1