Если вам нужно изменить способ доступа к базе данных без необходимости переписывать много кода, лучше не допускать EF на бизнес-уровень. Вы можете использовать Единицу работы и шаблоны репозитория для достижения этой цели; получить доступ ко всем функциям уровня данных через интерфейсы.
Если вы отбросите EF, интерфейсы останутся прежними, вы просто измените классы реализации.
Однако, есть аргументы для того, чтобы не использовать UoW и репозиторий, главным из которых является то, что DbContext уже предоставляет вам многие из этих функций.
Я начал проект с пользовательским интерфейсом и хранилищем на уровне данных и без ссылок EF на бизнес-уровне. Когда я прогрессировал, я чувствовал, что просто делаю работу для себя, и бросил их. Вместо этого я использую доступ к контексту с бизнес-уровня, выполняю любое необходимое преобразование из DTO в бизнес-уровень POCO.
В моем сценарии я уверен, что буду придерживаться EF. Если нет, подумайте, какой подход вам подходит.