2011-10-24 55 views
0

我有一个任意的字符串列表,我想查询我的SharePoint列表。如果任何字符串出现在列表项“标题”中,我想返回该结果。现在,我知道如何做到这一点的唯一方法是通过在我的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> 

回答

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做同样的事情在SharePoint 2007/WSS3。尽管如此,使用U2U CAML builder dll/library使工作更容易。