DocumentDB Linq запрос по свойству объекта в списке - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь следовать представленному решению здесь , но все еще безуспешно: этот запрос возвращает null:

  var plan = _dbClient.CreateDocumentQuery<Plan>(_collectionUri)
            .SelectMany(p => p.Users.Where(u => u.Id == userId)
            .Select(u => p))
            .AsEnumerable()
            .FirstOrDefault();

Хотя при этом возвращается искомый документдля (я пытаюсь не оставлять AsEnumerable до Where:

  var plan = _dbClient.CreateDocumentQuery<Plan>(_collectionUri)
            .AsEnumerable() 
            .Where(p => p.Users.Any(u => u.Id == userId))
            .FirstOrDefault();

Вот как выглядит документ:

{
"id": "9710ef23-aae5-4215-a45b-641185140722",
"title": "Free Plan",
"planId": "freeplan",
"ranking": 1,
"description": "Most basic features",
"startFrom": "2018-01-01",
"monthlyCost": 0,
"details": [
  // supressed
],
"users": [
    {
        "id": "11111111-2222-333-4444-5555555555555",
        "enrolledIn": "2017-07-30 08:00:01"
    },
    {
        "id": "4760c977-6bcf-497d-96eb-c43e5bcf1ab9",
        "enrolledIn": "1981-07-05 08:00:01"
    }
],

}

Заранее спасибо!

1 Ответ

0 голосов
/ 11 июня 2018

Во-первых, я проверил ваш первый запрос LINQ, и он хорошо работает для меня.

enter image description here

Вам необходимо проверить, есть ли проблема в вашем объектесоответствует LINQ.

enter image description here

Во-вторых, я проверил ваш второй запрос LINQ и оставил AsEnumerable перед Where.Произошли ошибки: Method 'Any' is not supported.

Пожалуйста, проверьте LINQ to SQL API , я предлагаю вам сделать sql с ARRAY_CONTAINS.

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...