Самая большая проблема, возникающая между ними, заключается не в независимости базы данных, а в том, что модель использования принципиально иная. Блок доступа к данным (DAAB) - это, прежде всего, удобная оболочка для ADO.NET. Это облегчает / делает менее раздражающим вызов хранимых процедур, но вы все еще имеете дело с наборами данных или программами чтения данных. Это на самом деле не меняет того, как вы взаимодействуете с базой данных, оно просто делает ее менее раздражающей.
Entity Framework, с другой стороны, касается моделирования данных и объектно-реляционного отображения. Он работает на более высоком уровне, чем DAAB; вы пишете свой код с точки зрения ваших объектов, а не с точки зрения DataSets или DataReaders. Он автоматизирует «материализацию» объектов из базы данных, поэтому вам не нужно писать этот код, поддерживает отношения между ними и т. Д. Это гораздо более полнофункциональный, но совершенно другой способ работы с базой данных.
Вам необходимо учесть, собираетесь ли вы сначала перейти к стилю доступа к данным ORM. Оттуда вы можете решить, подойдет ли EF или один из множества других ORM в .NET-пространстве вашим потребностям.
Существует множество провайдеров, доступных для EF (см. Ответ Деварта для списка), но они все внешние / дополнительные расходы. Единственный в коробке для Sql Server. Хотя я добавлю, что DAAB на самом деле не полностью охватывает «независимость от базы данных» - если у вас есть фактический SQL в вызовах DAAB, это не поможет вам с различиями в диалектах SQL. EF будет.