我正在使用 SharePoint 客户端对象模型从 SharePoint 2013 列表中检索数据。以下代码有效,并从 keyCol List 字段中获取所有值,并正确排序:
string keyCol = "SPFieldName";
CamlQuery keyColumnValuesQuery = CamlQuery.CreateAllItemsQuery();
ListItemCollection keyColumnValues = srcDocLib.GetItems(keyColumnValuesQuery);
spContext.Load(keyColumnValues, items => items.Include(item => item[keyCol]), items => items.OrderBy(item => item[keyCol]));
spContext.ExecuteQuery();
但是,我只想为字段中的每个唯一值检索一个项目,即 Distinct。当我将 Distinct() Linq/Lambda 添加到 Load 方法检索参数时(没有编译时间问题):
spContext.Load(keyColumnValues, items => items.Include(item => item[keyCol]), items => items.OrderBy(item => item[keyCol]), items => items.Distinct());
我收到 InvalidQueryExpressionException:不支持查询表达式“items.Distinct()”。
这是否意味着 SharePoint 端的 Linq 提供程序不支持该表达式,而我只是不走运使用这种技术?我做错了什么吗?谢谢。