Поиск списков для соответствия ключевых слов с произвольным списком строк

У меня есть произвольный список строк, с которыми я хотел бы запросить мои списки sharepoint. Если какая-либо из строк появится в элементе списка 'title', я бы хотел вернуть этот результат. Прямо сейчас, единственный способ, которым я знаю, как это сделать, это сделать кучу <OR> узлы в моем запросе caml, но есть ли способ сделать это, чтобы мне не приходилось динамически генерировать узел OR для каждой из моих строк в списке? что-то похожее на это:

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

1 ответ

Решение

LINQ to SharePoint - ваш лучший вариант. В SharePoint 2010 вам не нужно беспокоиться о базовом CAML с помощью LINQ to SharePoint. Ваш запрос LINQ будет так просто:

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

Мне пришлось написать код для генерации динамических узлов OR и AND в CAML, чтобы сделать то же самое в SharePoint 2007/WSS3. Использование библиотеки DLL / библиотеки U2U CAML облегчило работу.

Другие вопросы по тегам