对lookupmulti字段的Caml查询仅等于一个值

时间:2015-11-21 16:17:40

标签: linq sharepoint sharepoint-2010 lookup caml

我想用lookuplulti字段的caml查询过滤Sharepoint列表,但我想过滤只有一个值的项目。例如,

ID LookupMultiField

1 - Value1,Value2,Value11

2 - Value1

3 - Value2,Value3,Value4

当我使用Eq statetement仅用于值" Value1"在我的查询结果中是ID为1和2的项目。但我只想获得ID为2的项目。这怎么可能?

2 个答案:

答案 0 :(得分:1)

我认为在LookupMultiField上没有办法直接在CAML中执行此操作。

最简单的方法可能是使用Value1检索所有项目,然后在代码中进行其他过滤。

另一种方法是将LookupMultiField复制到文本字段(例如通过工作流),并对该文本字段进行过滤。

如果你只有很少的值,你也可以尝试否定你的过滤条件(提交NEQ Value2和NEQ value3和......)。

答案 1 :(得分:0)

您可以使用运营商"包含"像:

<Where>
    <Contains>
        <FieldRef Name="LookupMultiField" LookupId="True"/>
        <Value Type="Text">1</Value>
    </Contains>
</Where>

但你应该知道ID过滤元素