CAML-запрос не работает должным образом

Я пытаюсь выполнить запрос CAML, но он работает неправильно, вместо того, чтобы возвращать 2 документа, он возвращает все файлы .

<Where><And><Or><Eq><FieldRef Name='Participant' /><Value Type='User'>Project1, test</Value></Eq><Eq><FieldRef Name='Participant' /><Value Type='User'>Project2, test</Value></Eq></Or><Eq><FieldRef Name='Department' /><Value Type='Text'>Positioning</Value></Eq></And></Where>

Я пробовал тестировать в конструкторе запросов CAML, но не нашел возможности добавить два ИЛИ с одним условием И, как указано выше.

Мой полный код построения запроса:

                strQuery1 = "<Where><And>";
                strQuery1 +="<Or>";
                foreach (string p in ParticipantNames)
                {
                    strQuery1 += "<Eq><FieldRef Name='Participant' /><Value Type='User'>" + p + "</Value></Eq>";
                }
                strQuery1 +="</Or>";
                strQuery1 += "<Eq><FieldRef Name='Department' /><Value Type='Text'>" + dept + "</Value></Eq></And></Where>";

person Ris    schedule 01.04.2013    source источник


Ответы (1)


Вы проверили, сколько значений вы получаете в переменной «ParticipantNames»? потому что И , Или условия в CAML мы можем указать только 2 условия, пожалуйста, проверьте, сколько раз он зацикливается?

<Where>
<And>
  <Or>
   <Or>
    <Eq><FieldRef Name='Participant' /><Value Type='User'>Project1, test</Value></Eq>
    <Eq><FieldRef Name='Participant' /><Value Type='User'>Project2, test</Value></Eq>
   </Or>
   <Eq><FieldRef Name='Participant' /><Value Type='User'>Project3, test</Value></Eq>
  </Or>
  <Eq><FieldRef Name='Department' /><Value Type='Text'>Positioning</Value></Eq>
</And>
</Where>
person Hir    schedule 25.04.2013