Build one generic repository that handles CRUD for every entity, extend it per-aggregate for the queries that do not fit, and wire it into a Clean Architecture solution with MediatR and PostgreSQL.
Dapper gives you speed and raw SQL but no CRUD scaffolding. Build a generic repository that writes the SQL for you from attribute metadata, so every entity gets full CRUD for free.