Scoped выдает имплементацию в контексте одного запроса.
Т.е если несколько сервисов во время 1 запроса потребуют контекст бд, то это будет один и тот же объект.
transient выдаёт каждый раз новый объект, если его потребует один из сервисов
почему дбконтекст действует во время одного запроса? если контекст будет например transient, то могут возникнуть ошибки конкурентности.
почему не singleton? потому что самому контексту нужно освобождать ресурсы после использования