Очень часто в SharePoint необходимо делать запросы к спискам и библиотекам. Для этого используется язык CAML, основанный на XML.

Про синтаксис языка можно узнать по ссылке – http://msdn.microsoft.com/ru-ru/library/ms467521.aspx

Про объект SPQuery, который отвечает за выполнение запроса можно почитать здесь - http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spquery.aspx

 

SharePoint Designer (SPD)

Писать запрос вручную сложно, можно ошибиться в именах тегов. Этого можно избежать, открыв SPD и задав фильтр на странице представления списка или библиотеки.

Установите курсор на веб часть списка и нажмите кнопку Фильтр.

Задайте условия для фильтра (в данном случае имя или фамилия начинаются с буквы С).

Далее перейдите в представление с разделением кода и конструктора страницы.

Этот код можно использовать для запроса с использованием объекта SPQuery.

 

CAMLEX.NET

Другой вариант работы с запросами – использование проекта camlex.net для подготовки текста запросов.

Это бесплатный проект с открытым исходным кодом, который при помощи лямбда выражений генерирует строку с текстом CAML запроса, который потом можно передать объекту SPQuery.

Проект доступен по адресу - http://camlex.codeplex.com/

Также есть онлайн сервис перевода CAML в код на C# - http://camlex-online.org/

Примером работы может служить такой фрагмент кода:

var caml =

Camlex.Query()

.Where(x => (DateTime)x["Modified"] == new DateTime(2010, 01, 01)).ToString();

 

В результате выполнения этого фрагмента Вы получите следующий CAML запрос:

<Where>

<Eq>

<FieldRef Name="Modified" />

<Value Type="DateTime">2010-01-01T12:00:00Z</Value>

</Eq>

</Where>

 

U2U

Несколько лет назад разработчики пользовались программой U2U CAML Query Builder доступной на сайте бельгийской компании http://u2u.be Однако, с 2007 версии SharePoint программа не обновлялась.

Сейчас там доступно Windows приложение, которое будет работать только в режиме доступа через веб сервис SharePoint - http://u2u.be/res/Tools/CamlQueryBuilder.aspx

А также веб проект для SharePoint, устанавливаемый в качестве возможности - http://u2u.be/res/Tools/SharePointCamlQueryBuilder.aspx

Как видите, инструмент позволяет сгенерировать код на C# прямо из веб интерфейса.

К сожалению после смерти Патрика Тиссенгема, а также последующего ухода из компании Яна Тиленса (Microsoft) и Кэрин Бох, проект более не поддерживается.