搜索列表中的关键字与任意字符串列表匹配

时间:2011-10-24 22:18:23

标签: c# asp.net sharepoint-2010 caml

我有一个任意的字符串列表,我想查询我的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>

1 个答案:

答案 0 :(得分:0)

LINQ to SharePoint是您的最佳选择。在SharePoint 2010中,您无需使用LINQ to 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使工作变得更容易。