Мы используем Linq to EF, и у нас все еще есть отдельный слой данных.
Отчасти из-за того, что произойдет в будущем, если мы больше не хотим использовать EF или нам нужна поддержка базы данных, которую EF не поддерживает. Частью абстракции является то, что каждый слой может быть изменен без воздействия на другие.
Но также потому, что наш уровень данных немного сложнее, чем простая загрузка и сохранение объектов данных. После загрузки объектов из EF они полностью отключаются от контекста данных EF и преобразуются в бизнес-объекты. Сгенерированные EF объекты данных никогда не отображаются над уровнем данных. (Это сделано из-за слабой поддержки EF отключенных клиент-серверных приложений, поэтому мы должны сами управлять этой частью)