Когда использовать async/await на .net core web-api с шаблоном репозитория?

Я пытаюсь написать простую службу веб-API с Users CRUD, я немного запутался в использовании методов async/await в шаблоне репозитория... поток шаблона: CONTROLLER > BLOGIC > REPOSITORY, где я должен использовать методы async/await ? во всех слоях или только наверху (уровень контроллера)?


person Andrea Allegretti    schedule 29.05.2020    source источник
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