Как искать Список имен, которые присутствуют в космических документах - PullRequest
0 голосов
/ 06 июня 2018

У меня есть список имен.Мне нужно выяснить, какое имя присутствует в свойстве FirstName или LastName документа в Collection.

Я пытался выполнить запрос Linq для архивирования этого, но из-за ошибки («Ссылка на объект не установлена ​​для экземпляра объекта.").

 public class UserDoc
{
   public string Id { get; set; }

   public string FirstName { get; set; }

   public string LastName { get; set; }

   public string DocumentType { get { return "userdoc"; } private set { } }
}

 List<string> Names = new List<string>() { "satya", "singh" };

 IEnumerable<UserDoc> Users = await _dBRepository.GetItemsAsync<UserDoc>
                (x => (Names.Contains(x.FirstName + " " + x.LastName))&& x.DocumentType == "userdoc");


public async Task<IEnumerable<T>> GetItemsAsync<T>(Expression<Func<T, bool>> predicate) where T : class
    {
        IDocumentQuery<T> query = _client.CreateDocumentQuery<T>(documentCollectionUri:
             UriFactory.CreateDocumentCollectionUri(databaseId: _databaseId, collectionId: _collectionId),
            feedOptions: new FeedOptions { MaxItemCount = -1, EnableCrossPartitionQuery = true })
             .Where(predicate)
             .AsDocumentQuery();

        List<T> results = new List<T>();
        while (query.HasMoreResults)
        {
            results.AddRange(await query.ExecuteNextAsync<T>());
        }

        return results;
    }

1 Ответ

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

По вашему описанию.Ваш код должен быть изменен, как показано ниже:

IEnumerable<UserDoc> Users = await _dBRepository.GetItemsAsync<UserDoc>
            (x => (Names.Contains(x.FirstName)|| Names.Contains(x.LastName))&& x.DocumentType == "userdoc");

Я проверил код, и он заработал.

В соответствии с вашим сообщением об ошибке, я думаю, что наиболее вероятной причиной является то, что объект _client укажите на Null, пожалуйста, проверьте его и попробуйте снова.

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