Visual Studio: Query TFS Work Items: логика AND/OR не работает? - программирование
Подтвердить что ты не робот

Visual Studio: Query TFS Work Items: логика AND/OR не работает?

Мне нужно найти рабочие элементы TFS, связанные с определенной темой в нашем проекте. Для этой цели я попытался запросить рабочие элементы, используя построитель запросов в Visual Studio.

Поскольку есть несколько терминов, которые я хочу найти, я представил такой запрос:

WHERE (
Priority > 300 AND 
(Title.Contains('Dog') OR Title.Contains('Cat') OR Title.Contains('Hamster')))

Теперь, согласно http://msdn.microsoft.com/en-us/library/dd286638.aspx (раздел И/Или), вы должны сделать это так:

    | Priority|   >    | 300
And | Title | Contains | Dog
Or  | Title | Contains | Cat
Or  | Title | Contains | Hamster

Но... это не работает, как описано: насколько я вижу, это рассматривается как

(Приоритет > 300 И Title.Contains('Собака')) ИЛИ Title.Contains('Cat') ИЛИ Title.Contains('Hamster')))

Теперь это немного проблема для меня, потому что, помимо критерия "Приоритет", у меня также есть 8 дополнительных критериев, которые должны применяться ко всем матчам (дата, состояние и т.д.). И у меня есть не только три возможных матча, но и десять. Так что множится, и я получаю запрос, который очень длинный и в основном избыточный.

.. или, я что-то упустил? Есть ли другой способ выразить эти заявления? Или существует еще один способ запроса рабочих элементов TFS, например, другого инструмента?

Спасибо!

4b9b3361

Ответ 1

Вам нужно "Группировать" свои предложения Title вместе, чтобы получить ожидаемый запрос. Выберите три раздела "Название", щелкните правой кнопкой мыши и выберите "Групповые положения".

Group Clauses

В этом случае для создания этого скрипта был создан фрагмент запроса, который я создал в VS2012, но он тоже в 2010 году.

Он найдет только рабочие элементы с приоритетом >4 и Заголовок, содержащий либо Crash, Error или Working.

Query with Grouped Clauses