Я использую Dapper в приложении WPF для извлечения данных из базы данных для пары списков со списком. Я хотел бы, чтобы этот поиск происходил в фоновом режиме; это предотвратит небольшую задержку, когда пользователь откроет первое поле со списком.
Итак, я сделал это:
private Task<IEnumerable<T_Program>> _allTapes;
// Binds to combobox ItemsSource
public IEnumerable<T_Program> Tapes =>
_allTapes.Result.Where(x => x.Program.Equals(Program));
А в конструкторе моего View Model:
_allTapes = _conn.GetAllAsync<T_Program>();
Но я не получил «улучшение производительности», которое хотел.
При наведении курсора на _allTapes
во время отладки выдается следующее описание:
Id = 6722, Status = WaitingForActivation, Method = "{null}", Result = "{Not yet computed}"
Таким образом, может показаться, что метод GetAllAsync
Даппера на самом деле не выполняет запрос, пока он не будет вызван извлечением Result
из Задачи.
Как получить желаемое фоновое выполнение?