gpt4 book ai didi

c# - 如何使用 CAML 查询检查 ContentType.Hidden?

转载 作者:太空宇宙 更新时间:2023-11-03 22:04:51 25 4
gpt4 key购买 nike

我想从 CAML 查询过滤到 ListItem.ContentType.Hidden。

使用像这样的代码的 SharePoint To Linq。

var query = from item in list.GetItems(CamlQuery.CreateAllItemsQuery()) 
where item.ContentType.Hidden == false select item;

如果我使用纯 CAML 查询进行检查,我是否应该编写代码以及如何编写代码?

是一个简单的问题。

谢谢。

最佳答案

您无法在纯 CAML 查询中检查 Hidden 属性。在 CAML 中,只有 ContentType 的名称和 ID 可用(字段 ContentTypeContentTypeID)。

如果只有少数隐藏内容类型需要排除,您可以先加载这些隐藏内容类型并在 CAML 查询中排除它们:

提取隐藏的内容类型:

SPWeb web = // ...
IEnumerable<string> contentTypeIds = web.AvailableContentTypes
.Cast<SPContentType>()
.Where(ct => ct.Hidden)
.Select(ct => ct.Id.ToString());

CAML 查询:

<Where>
<And>
<Neq>
<FieldRef Name='ContentTypeID'/>
<Value Type='Text'>[HiddenContentTypeId]</Value>
</Neq>
<Neq>
<FieldRef Name='ContentTypeID'/>
<Value Type='Text'>[AnotherHiddenContentTypeId]</Value>
</Neq>
</And>
<!-- more hidden content types -->
</Where>

关于c# - 如何使用 CAML 查询检查 ContentType.Hidden?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8813261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com