Using this :
service = await anext(
provide_users_service(
db_config.provide_session(connection.app.state, connection.scope)
)
)
should reuse loading property defined inside provide_service method declared like that :
async def provide_users_service(
db_session: AsyncSession,
) -> AsyncGenerator[UserService, None]:
async with UserService.new(session=db_session, load=select(User).options(selectinload(User.roles))) as service:
yield service