CAML:无法完成此操作

Ris*_*shi 3 caml sharepoint-2010

似乎我的以下查询失败并抛出"无法完成此操作".但是,当我在CAML查询构建器中测试此查询时,它工作正常.

<Where>
    <And>
       <Or>
         <Eq><FieldRef Name='Participant' /><Value Type='User'>Test1</Value></Eq>
         <Eq><FieldRef Name='Participant' /><Value Type='User'>Test2</Value></Eq>
         <Eq><FieldRef Name='Participant' /><Value Type='User'>Test3</Value></Eq>
        </Or>
      <Eq><FieldRef Name='Department' /><Value Type='Text'>Positioning</Value></Eq>
     </And>
 </Where>
Run Code Online (Sandbox Code Playgroud)

Jig*_*put 8

它似乎在您的查询中有两个以上的条件<OR>tab.You <Or>或一个<And>标签中最多只能有两个条件.

此元素可以嵌套在其他And和Or元素中.服务器支持无限复杂的查询.但是,任何给定的And元素只能有两个合取; 也就是说,只有两个子元素.如果需要连接三个或更多条件,则必须嵌套And元素,如下一节中的第三个示例所示.

请看这里:MSDN

所以你需要重写你的查询,如:

<Where>
  <And>
     <Or>
        <Eq>
           <FieldRef Name='Participant' />
           <Value Type='User'>Test1</Value>
        </Eq>
        <Or>
           <Eq>
              <FieldRef Name='Participant' />
              <Value Type='User'>Test2</Value>
           </Eq>
           <Eq>
              <FieldRef Name='Participant' />
              <Value Type='User'>Test3</Value>
           </Eq>
        </Or>
     </Or>
     <Eq>
        <FieldRef Name='Title' />
        <Value Type='Text'>Postiioning</Value>
     </Eq>
  </And>
 </Where>
Run Code Online (Sandbox Code Playgroud)