А как такая хрень вообще происходит?
Во-первых, от ORM тоже можно абстрагироваться тем же UnitOfWork.
я может сейчас скажу очень не популярное мнение, но манал я уже все эти абстрагирования.
Есть у нас один такой проект, сделанный по методичке евангелистов - это полный П.
Нужна тебя новая функция GetCustomerById
Сначала ты добавляешь её в три интерфейса: IcustomerDistributedService, Icustomerservice и IcustomerRepository. Затем пишешь в трех местах реализацию.
Если есть mock repository и сервисы, то не забываешь дописать и там.
Далее - у customer появилось новое поле цвет ногтей. Объявляешь его в классе customer(он у нас соответствует таблице в БД), затем в Customer DataTransferObject, иначе ведь не православно Entity классы использовать в presentation layer.
Не забыть прописать присвоения в конвертации entity => DTO и обратно.
И надо было так упарываться?