Я немного покопался в этом, и вот мои выводы по этому вопросу.
Службы данных ADO.NET:
Вы можете использовать службы данных ADO.NET (вам необходим пакет обновления 1) для предоставления вашей структуры Entity по проводам с практически нулевым кодом. Но, как я понимаю, единственным ограничением является транзакция через HTTP. Это означает, что с точки зрения сериализации есть небольшие накладные расходы (мы все знаем, что двоичная сериализация быстрее), но преимущество заключается в скорости реализации наших сервисов.
Я получил неофициальное слово от Джона [http://twitter.com/John_Papa] об этом - «Определенно больше возможностей с wcf. Больше работы в большинстве случаев тоже. Astoria легко раскрывает сущности. Perf diffs в большинстве случаев незначительны» *
Преимущества - вам вообще не нужно писать никаких сервисов - вы можете просто подключить логику валидации и безопасности к сервисам данных и структуре сущностей, и все готово. Идеально, если вы используете сервисы, ориентированные на данные, по протоколу http - в таких случаях, как использование клиента Silverlight или интерфейса winform / wpf через http.
Предоставление Entity Framework через WCF:
В пакете обновления 1 (SP1) существует широкая поддержка использования структуры сущностей в многоуровневых архитектурах. Это включает в себя поддержку быстрой загрузки и управления контекстом. Конечно, в этом случае нам нужно написать сервисы (и логику наших методов). Или, если у нас есть модель структуры сущностей, полностью совмещенная с базой данных, мы могли бы генерировать большинство сервисов, которые включают необходимые нам методы.
Рекомендую вам прочитать это http://msdn.microsoft.com/en-us/magazine/cc700340.aspx
Другой альтернативой может быть использование EFPocoAdapter, чтобы иметь простую оболочку POCO поверх структуры сущностей для dtos, вместо непосредственного предоставления классов структуры сущностей. Сейчас это компасный проект для следующей версии Entity Framework http://code.msdn.microsoft.com/EFPocoAdapter.