Start here. This is the direct spoken answer to practice first.
Why this question matters
N plus one is a query-shape failure: one request loads a set of rows, then navigation access or loop logic issues another query for each row. Query count grows with result size even when each individual command looks fast.
I would reproduce the endpoint with a representative page size and inspect EF Core command logs or dependency traces for that single request. One parent query followed by the same child query once per parent confirms N plus one. I would then shape the response deliberately: project the required DTO in one query, aggregate in SQL, or load related rows in one additional set-based query. The goal is a bounded query count, not simply adding Include everywhere.