Start here. This is the direct spoken answer to practice first.
Why this question matters
Dependency inversion keeps high-level business policy from importing low-level mechanisms. Dependency injection is one way to assemble that design, but registering every concrete class behind an interface does not create it automatically.
The order workflow should depend on contracts expressed in business terms, such as reserving payment or sending an order confirmation, while infrastructure implements those contracts using EF Core, an external provider, or email. The outer application composition root selects concrete implementations and their lifetimes. Dependencies point toward the policy that defines what the use case needs.