ПОСЛЕ МОЕГО ПРЕДЫДУЩЕГО ОТВЕТА ЗДЕСЬ НЕДОСТАТКИ РИА УСЛУГИ:
С другой стороны, недостатком риа-сервисов является отсутствие гибкости. В основном это похоже на канал, соединяющий класс на стороне сервера с его представителем на стороне клиента таким образом, что вы работаете с классом на стороне клиента, как вы работали непосредственно с классом на стороне сервера. Если способ, которым эта «трубка» обрабатывается, подходит для вашего приложения, вы получаете множество бесплатных услуг (без написания кода ...). Тем не менее, существуют ограничения, которые нельзя удалить специально:
1) У вас нет одинаковой свободы в определении поведения, атрибутов и т. Д. Для изменения поведения веб-службы. Например, вы не можете определить распределенную транзакцию, включающую более одного веб-сервиса. Трудно добавить новые конечные точки .... Вы должны написать код .... не просто изменить файл конфигурации.
2) Вы можете определить только один метод Insert / один update / один метод get для каждого класса. Если вы применяете фильтрацию к клиентскому запросу через LINQ, он применяется только к клиенту, то есть все данные загружаются с сервера и затем фильтруются на клиенте. Наоборот, если вы используете службы данных WCF на основе OData и определяете запрос на стороне клиента. ЭТОТ ЗАПРОС ПЕРЕВОДИТСЯ В ЗАПРОС ОТДЫХА (запрос, закодированный в URL запроса), ПОЭТОМУ ТОЛЬКО ДАННЫЕ, КОТОРЫЕ ВЫ ТРЕБУЕТЕ С ВАШИМ ФИЛЬТРОМ, фактически ЗАГРУЖАЮТСЯ С СЕРВЕРА. Для получения дополнительной информации о службе данных WCF см. здесь .
3) В отличие от Служб данных WCF у вас нет службы проверки, предлагаемой как служба Ria. Однако вы можете продолжать использовать аннотации данных с помощью моего Валидационного инструментария для WPF и Silverlight, который доступен бесплатно здесь