Обновление настраиваемого поля TFS — оптимизация

Я хотел получить доступ к данным TFS через TFS API и WIQL, используя настраиваемое поле в WIQL, где предложение:

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

где [Идентификатор объекта] — настраиваемое поле. Но API TFS выдал сообщение об исключении:

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

Определение поля имеет имя = «Идентификатор объекта» и справочное имя = «DoorsTool.DoorsArtifactType.ObjectId». Я попробовал как Object Id, так и DoorsTool.DoorsArtifactType.ObjectId в WIQL. Тот же результат.

Я изменил код следующим образом, и он работал отлично:

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) { ... } }

Но сейчас производительность плохая.

Что я могу сделать. Проблема похожа на это но все же я не могу решить проблему на основе этого обсуждения.


person JukkaAakula    schedule 02.06.2015    source источник
comment
Он должен работать. Вы пробовали запрос из Visual Studio, а затем экспортировали его, чтобы увидеть источник?   -  person Giulio Vian    schedule 02.06.2015


Ответы (1)


Способ заключается в том, чтобы сначала создать запрос, который вы хотите, в визуальной студии. После того, как он заработает, вы можете «сохранить как» на локальный диск и открыть его в блокноте. Вы можете просто скопировать запрос оттуда.

person MrHinsh - Martin Hinshelwood    schedule 02.06.2015
comment
Спасибо! Я только что совершил глупейшую ошибку. Я не понял только в одном проекте есть настраиваемое поле! Я следовал вашим рекомендациям и у меня все получилось. - person JukkaAakula; 03.06.2015