Я подумал, что было бы лучше написать на уровне приложения (бизнес) интерфейсы единицы работы и их реализации на уровне персистентности (DAL). Цель состоит в том, чтобы слои были максимально разделены.
Представьте себе сценарий, в котором вы решили изменить DAL с ядра EF на Dapper. Как этот переход был бы менее болезненным? Разве не лучше иметь интерфейсы, объявляющие, что мне нужен этот запрос, и это, и то, чтобы работать в моем бизнесе и сопоставить его с новым уровнем доступа к данным?