使用任意字符串列表搜索关键字匹配列表

本文关键字:列表 关键字 搜索 任意 字符串 | 更新日期: 2023-09-27 18:12:30

我有一个任意的字符串列表,我想查询我的sharepoint列表。如果任何字符串出现在一个列表项目'title'我想返回那个结果。现在,我知道如何做到这一点的唯一方法是在我的caml查询中创建一堆<OR>节点,但是有没有一种方法可以让我不必为列表中的每个字符串动态生成一个OR节点?类似这样:

<Contains>
<FieldRef Name="Title" />
<Value type="text"> Value1</Value> (OR)
<Value type="text"> Value2</Value> (OR)
<Value type="text"> Value3</Value>
</Contains>

使用任意字符串列表搜索关键字匹配列表

LINQ to SharePoint是你最好的选择。在SharePoint 2010中,通过使用LINQ来SharePoint,你不需要担心底层的CAML。您的LINQ查询将像这样简单:

 var results =  from r in datacontext.List 
    where r.title.Contains(Value1) OR r.title.Contains(Value2)

我必须编写代码在CAML中生成动态OR和and节点,以便在SharePoint 2007/WSS3中做同样的事情。使用U2U CAML builder dll/library使工作更容易。