4

似乎我的以下查询失败并抛出“无法完成此操作”。但是,当我在 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>
4

1 回答 1

12

在您的查询中,选项卡上似乎有两个以上的条件。在一个或一个标签<OR>内最多只能有两个条件。<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>
于 2013-04-04T07:27:00.310 回答