А зачем тут IDispose? У вас нет неуправляемых ресурсов. NpgsqlConnection это управляемая обертка над подключением, при сборке мусора все само соберется и освободится. Конечно, если у вас высоконагруженная система, то тогда имеет смысл освобождать подключение.
https://habr.com/ru/post/89720/ вот почитайте, как правильно делать.
PS и создавать подключение в репозитории, не айс, зачем DI придумали люди.