SharePoint 2007 ではSPSiteDataQuery
、コンテンツ タイプに対して with フィルタを実行すると、期待どおりに機能しました。
<Where>
<Eq>
<FieldRef Name='ContentType'/>
<Value Type='Text'>SomeContentType</Value>
</Eq>
</Where>
SharePoint 2010 では、同じクエリで 1 つのリストのアイテムのみが返されます。考えられる回避策は、コンテンツ タイプ ID でフィルタリングすることです。「リスト コンテンツ タイプ」は「サイト コンテンツ タイプ」から継承されるため、「BeginsWith」演算子を使用する必要があります。
<Where>
<BeginsWith>
<FieldRef Name='ContentTypeID'/>
<Value Type='Text'>SomeContentTypeId</Value>
</BeginsWith>
</Where>
ただし、これは、このコンテンツ タイプまたは継承されたコンテンツ タイプを持つすべてのアイテムに一致します。これは私が望むものではありません。
SPSiteDataQuery
コンテンツ タイプ フィルタを作成する方法を知っている人はいますか?