在SharePoint 2007中,正在按预期方式执行带有内容类型过滤器的SPSiteDataQuery
。
<Where>
<Eq>
<FieldRef Name='ContentType'/>
<Value Type='Text'>SomeContentType</Value>
</Eq>
</Where>
在SharePoint 2010中,同一查询仅返回一个列表中的项目。 可能的解决方法是过滤内容类型ID。必须使用“BeginsWith”运算符,因为“列表内容类型”继承自“站点内容类型”:
<Where>
<BeginsWith>
<FieldRef Name='ContentTypeID'/>
<Value Type='Text'>SomeContentTypeId</Value>
</BeginsWith>
</Where>
但这会匹配具有此内容类型或任何继承内容类型的所有项目。这不是我想要的。
有谁知道如何使用内容类型过滤器创建SPSiteDataQuery
?
答案 0 :(得分:1)
试试这个(参见计算值类型):
<Where>
<Eq>
<FieldRef Name='ContentType'/>
<Value Type='Computed'>SomeContentType</Value>
</Eq>
</Where>