Недавно у меня возникли сомнения в том, как я реализую шаблон async-wait в проектах веб-API. Я читал, что асинхронный ожидание должно быть "полностью" и тем, что я сделал. Но все это начинает казаться излишним, и я не уверен, что делаю это правильно. У меня есть контроллер, который вызывает репозиторий, и он вызывает класс доступа к данным (сущность framework 6) - "async all the way". Я прочитал много противоречивых материалов по этому вопросу и хотел бы, чтобы оно было выяснено.
EDIT: ссылка на возможный дубликат - хорошая публикация, но недостаточно для моих нужд. Я включил код, чтобы проиллюстрировать проблему. Кажется, действительно трудно получить решающий ответ на это. Было бы неплохо, если бы мы могли поставить async-wait в одном месте и позволить .net обрабатывать все остальное, но мы не можем. Итак, я над этим делаю или это не так просто.
Вот что у меня есть:
Контроллер:
public async Task<IHttpActionResult> GetMessages()
{
var result = await _messageRepository.GetMessagesAsync().ConfigureAwait(false);
return Ok(result);
}
Repository:
public async Task<List<string>> GetMessagesAsync()
{
return await _referralMessageData.GetMessagesAsync().ConfigureAwait(false);
}
Данные:
public async Task<List<string>> GetMessagesAsync()
{
return await _context.Messages.Select(i => i.Message).ToListAsync().ConfigureAwait(false);
}