SPSiteDataQuery: фильтрация типов содержимого в SharePoint 2010 - PullRequest
1 голос
/ 29 сентября 2010

В SharePoint 2007 выполнение SPSiteDataQuery с фильтром для типов контента работает должным образом.

<Where>
  <Eq>
    <FieldRef Name='ContentType'/>
    <Value Type='Text'>SomeContentType</Value>
  </Eq>
</Where>

В SharePoint 2010 один и тот же запрос возвращает элементы только из одного списка.Возможным обходным решением будет фильтрация по идентификатору типа контента.Необходимо использовать оператор «BeginsWith», поскольку «тип содержимого списка» наследуется от «типа содержимого сайта»:

<Where>
  <BeginsWith>
    <FieldRef Name='ContentTypeID'/>
    <Value Type='Text'>SomeContentTypeId</Value>
  </BeginsWith>
</Where>

Но это будет соответствовать всем элементам с этим типом содержимого или любым унаследованным содержимымтип.Что не то, что я хочу.

Кто-нибудь знает, как создать SPSiteDataQuery с фильтром типов контента?

1 Ответ

1 голос
/ 02 ноября 2010

Попробуйте это (см. вычисляемый тип значения):

<Where>
  <Eq>
    <FieldRef Name='ContentType'/>
    <Value Type='Computed'>SomeContentType</Value>
  </Eq>
</Where>
...