Я пытаюсь запросить Art, у которого есть продукт определенного типа. Вот моя модель для искусства:
public string Title { get; set; }
public string Description { get; set; }
public List<Product> Products { get; set; }
public string PaintedLocation { get; set; }
Отсюда все, что я делаю, это следующий запрос LINQ:
List<Art> items = DocumentDbHelper.Client.CreateDocumentQuery<Art>(collection.DocumentsLink)
.Where(i => i.type == "art")
.Where(i => i.Products.Any(p => p.Name == productType))
.AsEnumerable()
.ToList();
Я получаю следующую ошибку:
"Method 'Any' is not supported."
Я перешел на страницу, на которой ссылается код для просмотра того, что поддерживается, но я не вижу, что он говорит, что Any() не поддерживается, возможно, что-то неправильно. Любая помощь приветствуется.
UPDATE
Это действительно странно для меня, поэтому я разбил его, чтобы увидеть, что было возвращено из двух результатов, чтобы лучше отладить проблему:
List<Art> items = DocumentDbHelper.Client.CreateDocumentQuery<Art>(collection.DocumentsLink)
.Where(i => i.Id.Contains("art"))
.AsEnumerable()
.ToList();
items = items.Where(i => i.Products.Any(p => p.Name == productType))
.AsEnumerable()
.ToList();
По какой-то причине это работает, я не являюсь поклонником этого, потому что, поскольку я преобразовываю его в список, который выполняет запрос дважды, но он по крайней мере доказал, что Any() и Select() должны технически работать.