Как придерживаться абстракции и асинхронностиC#

Место общения программистов C#
Anonymous
Как придерживаться абстракции и асинхронности

Сообщение Anonymous »

Код: Выделить всё

public async Task GetWaitingPatientsAsync()
{
return await _context.Patients.AsNoTracking().Where(x => x.Status == PatientStatus.Waiting).ToListAsync();

}
У меня в репозитории есть такой метод. Он возвращает абстракцию, но мне приходится переопределить эту абстракцию с помощью ToListAsync и передать список на уровень сервиса вместо IEnumerable. Я не могу избежать использования здесь ToListAsync, потому что await ожидает Task, а Where() возвращает IQueryable. Теперь я столкнулся с дилеммой: я хочу сохранить асинхронность, но при этом не нарушать абстракцию. Что вы порекомендуете? Должен ли я сломать абстракцию?

Вернуться в «C#»