MongoDB FindAsync никогда не возвращается в ожидании - PullRequest
0 голосов
/ 23 октября 2019

Я просмотрел все похожие темы, которые касаются FindAsync , не возвращающегося на , ожидают , и ни одна из них не помогла мне решить мою проблему, поэтому я спрашиваю здесь снова.

Я нахожусь в приложении WPF (.Net Framework 4.7.2) и пытаюсь использовать драйвер C # MongoDB (последняя версия 2.9), чтобы найти один элемент в коллекции (в коллекции только 2 элемента)) с помощью команды FindAsync(filter).

Использование синхронной функции Find(filter).SingleOrDefault() прекрасно работает (у меня есть простое FilterDefinition для поля имени), также вызывая другие (создавать) асинхронные функции драйвера (например, InsertOneAsync)) работает просто отлично.

Я также подключился к клиентским вызовам, подписавшись через MongoClientSettings.ClusterConfiguration и SingleEventSubscribers<CommandSucceededEvent> (и другие команды). Вывод консоли ясно говорит мне, что операция FindAsync прошла успешно. Он находит правильный отдельный элемент коллекции.

Это моя асинхронная функция (в моем универсальном классе):

        public async Task<T> GetAsync(FilterDefinition<T> filter)
        {
            var cursor = await Collection.FindAsync(filter);
            return await cursor.SingleOrDefaultAsync().ConfigureAwait(false);
        }

Вот как я ее называю (из конструктора моего ViewModel):

        item = CollectionClass.GetAsync(nameFilter).Result;

Я отладил свое приложение, и оно никогда не возвращается из вызова FindAsync, и я понятия не имею, почему.

...