Получить список объектов драйвера mongodb net core - PullRequest
1 голос
/ 27 февраля 2020

Привет мне нужно получить список объектов из mongodb, я использую mongodb.driver и net core:

ошибка, которая у меня есть:

Ошибка CS0266 Невозможно неявно преобразовать тип «MongoDB.Driver.IAsyncCursor>» в «System.Collections.Generi c .IEnumerable». Существует явное преобразование (вам не хватает приведения?) ... \ Implementations \ EventRepository.cs 104 Active

как я могу правильно возвратить IEnumerable, это мой код:

public async Task<IEnumerable<Event>> GetEventsByOwnerId(IDictionary<string, string> paramsEvents)
{
    try
    {
        FilterDefinition<Event> filter = Builders<Event>.Filter.Eq("OwnerId", paramsEvents["OwnerId"]);
        var response = await this.GetMongoCollection().FindAsync<Event>(filter);

        return response;
    }
    catch (MongoException e)
    {
        throw new MongoException(e.ToString());
    }
    catch (Exception e)
    {
        throw new Exception(e.ToString());
    }
}

1 Ответ

0 голосов
/ 27 февраля 2020

FindAsyn c метод возвращает IAsyncCursor , который не реализует IEnumerable<T>, поэтому здесь не может быть выполнено неявное приведение. Вы должны использовать .ToList(), чтобы «материализовать» запрос (извлечь данные):

var response = await this.GetMongoCollection().FindAsync<Event>(filter);
return response.ToList();
...