Системы репозитория хороши для тестирования.
Одной из причин является то, что вы можете использовать Dependency Injection.
По сути, вы создаете интерфейс для своего репозитория, и вы ссылаетесь на интерфейс для него, когда выделают объект.Затем вы можете позже создать поддельный объект (например, с помощью moq), который реализует этот интерфейс.Используя что-то вроде ninject, вы можете привязать соответствующий тип к этому интерфейсу.Но вы просто взяли зависимость из уравнения и заменили ее чем-то проверяемым.
Идея состоит в том, чтобы иметь возможность легко менять реализации объектов для целей тестирования. Надеюсь, что это имеет смысл.