Я добавил задачу async, которая назначает список новому документу Bson, используя MongoDB.Net driver. Я получаю предупреждение о методе, который говорит, что я должен добавить операторов ожидания к вызовам API.Как рефакторировать метод async для включения операторов ожидания?
Так что я попытался это, добавляя await
к вызову API, но он дает мне ошибку:
Error 9 Cannot await 'System.Collections.Generic.List'
Я понимаю, что я не могу ждать тип списка, но не уверен, где еще для размещения оператора. Я думал, что вызов Find может быть реорганизован в Задачу, а затем назначить клиентов на результат.
Список клиентов относится к типу для справки.
Кто-нибудь знает, как я должен добавлять оператор ожидания к вызову API?
Это где я добавил оператор AWAIT по методу:
public async Task LoadDb()
{
var customerCollection = StartConnection();
try
{
customers = await customerCollection.Find(new BsonDocument()).ToListAsync().GetAwaiter().GetResult();
}
catch (MongoException ex)
{
//Log exception here:
MessageBox.Show("A connection error occurred: " + ex.Message, "Connection Exception", MessageBoxButton.OK, MessageBoxImage.Warning);
}
}
И это StartConnection()
, что customerCollection приходит от:
public IMongoCollection<CustomerModel> StartConnection()
{
var client = new MongoClient(connectionString);
var database = client.GetDatabase("orders");
//Get a handle on the customers collection:
var collection = database.GetCollection<CustomerModel>("customers");
return collection;
}
Хорошо. Теперь я понимаю, приведенное выше редактирование устраняет ошибку. Но я заметил, что когда я пытаюсь назначить список возвращенных клиентов, в коллекцию Observable типа Customer (используя метод расширения) он не принимает новый тип списка. –
Я получаю следующее сообщение об ошибке: Ошибка 'System.Threading.Tasks.Task>' не содержит определения для 'ToObservableCollection' и никакого метода расширения ' ToObservableCollection 'принимает первый аргумент типа' System.Threading.Tasks.Task > 'можно найти –
Это метод расширения: http://hastebin.com /ohiqafudon.vala –