Поиск списков для соответствия ключевых слов с произвольным списком строк
У меня есть произвольный список строк, с которыми я хотел бы запросить мои списки 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 облегчило работу.