Microsoft.SharePoint.Client.InvalidQueryExpressionException: 'Выражение запроса 'value(Microsoft.SharePoint.Client.ListCollection).Where(list => ((list.BaseTemplate == 101) AndAlso (list.Hidden == False))).OrderBy(list => list.Id ).Include(new [] {list => list.Title, list => list.RootFolder.Name}).Take(100).Skip(0)' не поддерживается.'
< /blockquote>
Похоже, проблема в запросе, а именно в .Skip. Если я удалю пропуск из запроса, ошибки больше не будет.
Вот код:
Код: Выделить всё
try
{
int batchSize = 100;
int currentBatch = 0;
bool hasMoreLibraries = true;
var allDocumentLibraries = new List();
while (hasMoreLibraries)
{
var documentLibraries = context.LoadQuery(context.Web.Lists
.Where(list => list.BaseTemplate == (int)ListTemplateType.DocumentLibrary
&& list.Hidden == false)
.OrderBy(list => list.Id)
.Include(list => list.Title, list => list.RootFolder.Name)
.Take(batchSize)
.Skip(currentBatch * batchSize)
);
context.ExecuteQuery();
allDocumentLibraries.AddRange(documentLibraries);
if (documentLibraries.Count() < batchSize)
{
hasMoreLibraries = false;
}
foreach (var library in documentLibraries)
{
//do smt
}
currentBatch++;
}
return allDocumentLibraries;
}
catch (Exception ex)
{
Console.WriteLine(ex);
return null;
}
Спасибо за ответы.
Подробнее здесь: https://stackoverflow.com/questions/790 ... t-the-skip