Зачем нужен IRepository ASP.NET Core?

Нашёл в документации такой то-ли паттерн, то-ли интерфейс - IRepository. Кто знает, для чего он нужен?

Паттерн Repository определяет некий абстрактный шар между Data Access Layer и Business Logic Layer (уровни доступа к данным и бизнес-логики) в приложении. Это паттерн "доступа к данным", который обеспечивает подход более слабой связности данных.

Реализуется он таким образом: сначала мы создаём обобщённый репозиторий, в котором определены пути "трансфера" данных, меппинг данных с сущностями из среднего уровня (Business Logic Layer) и заносим все изменения из бизнес-логики в источник данных (в базу данных, например).