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)
{
...
}
}
しかし、今のパフォーマンスは悪いです。
私に何ができる。問題はこれに似ていますが、その議論に基づいて問題を解決することはできません。