CAML查询仅获取非重复项

时间:2016-09-14 05:43:31

标签: sharepoint-2013 caml

我的第一个目标是在'Pending'中获取状态为sharepoint list的所有项目。到目前为止我的代码是这样的:

using (var clientContext = new ClientContext(spSite.Trim()))
            {
                clientContext.Credentials = GetNetworkCredential();
                var approvalLists = clientContext.Web.Lists.GetByTitle(approvalLibraryName);

                CamlQuery query = new CamlQuery();
                query.ViewXml = "<View>" +
                                    "<Query>" +
                                       "<Where>" +
                                           "<Eq>" +
                                               "<FieldRef Name='IsApproved'/><Value Type='Choice'>Pending</Value>" +
                                           "</Eq>" +
                                       "</Where>" +
                                   "</Query>" +
                               "</View>";

                ListItemCollection approvalListItem = approvalLists.GetItems(query);
                clientContext.Load(approvalListItem);
                clientContext.ExecuteQuery();

            }

它正在工作但我意识到特定项目可以在该列表中插入多于1个。例如,对于项request_100,它可以为pending设置一行,为approved设置另一行。所以我只需要获取状态为'Pending'的非重复项。那么有可能只有那些有计数= 1的人才能获取组吗?因为我在想是否可以加载所有项目然后使用linq列表操作它。或者你们有另外一个建议吗?

1 个答案:

答案 0 :(得分:0)

我的第一个想法确实也是在ItemCollection上使用linq,它应该可以正常工作。

但只是一个想法,如果你只选择'待定'行,你会不会得到重复的?或者可以有多个项目,例如'request_100',状态为'待定'?

请查看与您相同的问题:https://sharepoint.stackexchange.com/questions/43262/how-to-use-groupby-in-caml-query