У меня есть проблема, которую я не могу исправить с помощью моего довольно небольшого знания LINQ.
У меня есть коллекция списков, которые содержат список полей.
Мне нужны только списки со свойствами hidden == false и получившие поля с описанием «Special Field».
Я пробовал следующие подходы ... ни один из них не работал:
clientContext.Load(listCollection,
lists => lists
.Where(list => list.Hidden == false)
.SelectMany(list => list.Fields)
.Where(field => field.Description == "Special Field"));
и
var listQuery = from list in listCollection.Where(l => l.Hidden == false)
from field in list.Fields
where field.Description == "Special Field"
select list;
и
var listQuery2 = listCollection
.SelectMany(lists => listCollection)
.Where(l => l.Hidden == false)
.SelectMany(fields => fields.Fields)
.Where(f => f.Description == "Special Field"
все следуют
var result = clientContext.LoadQuery(listQuery2);
clientContext.ExecuteQuery();
Никто из них не работал.
Я получаю следующее исключение (для последнего запроса, но сообщение аналогично другим запросам):
Значение выражения запроса '(Microsoft.SharePoint.Client.ListCollection) .SelectMany (lists => value (docma.Library.Classes.SharepointDataConnector + <> c__DisplayClass56_0) .listCollection) .Where (l => (l.Hidden = = False)). SelectMany (fields => fields.Fields) 'не поддерживается.
Кто-нибудь знает, что я делаю неправильно или как заставить его работать?
Нужно ли использовать 2 запроса?
Производительность важна.
Заранее спасибо.