Я пытаюсь написать простую службу веб-API с Users CRUD, я немного запутался в использовании методов async/await в шаблоне репозитория... поток шаблона: CONTROLLER > BLOGIC > REPOSITORY, где я должен использовать методы async/await ? во всех слоях или только наверху (уровень контроллера)?
Когда использовать async/await на .net core web-api с шаблоном репозитория?
comment
Асинхронность должна использоваться полностью. Синхронный метод на любом уровне вводит блок, что противоречит цели асинхронности.
- person Johnathan Barclay   schedule 29.05.2020
comment
Пожалуйста, добавьте более подробную информацию в свой вопрос и добавьте пример кода, который вы пробовали.
- person   schedule 29.05.2020
comment
Отвечает ли это на ваш вопрос? Архитектура для async/await
- person Guru Stron   schedule 29.05.2020
Ответы (1)
async
"пузырится" в вашей структуре кода, поэтому, очевидно, основным источником асинхронного кода должен быть уровень вашего репозитория, но чтобы использовать его как асинхронный, вам также нужно будет сделать весь вызывающий код асинхронным (или просто вернуть Task<T>
, если вызывающий просто передает результаты, ничего не делая с ними), иначе вам нужно будет заблокировать асинхронный вызов, который в основном не только удаляет все возможные выгоды от него, но также в некоторых случаях может вызвать проблемы.
Также прочитайте этот ответ.
person
Guru Stron
schedule
29.05.2020