Я мог бы взглянуть на ADO.NET Data Services , он же Astoria, в VS2008 SP1.
Это позволяет вам предоставлять данные через веб-сервис (WCF предоставляет ATOM, IIRC) - но вам не нужно знать все эти детали: инструмент беспокоится об этом: вы просто получаете обычный IQueryable источники в контексте данных (не совсем то же самое, что контекст данных LINQ-to-SQL, но та же концепция).
Здесь хорошо то, что LINQ-запрос (например, фильтрация (Где), разбиение на страницы (Пропуск / Возврат) и т. Д.) Может составляться все путем от клиента, до веб-сервис и вплоть до хранилища данных с поддержкой LINQ (LINQ-to-SQL или Entity Framework и т. д.). Таким образом, по каналу поступают только правильные данные: если вы запросите первые 10 строк (из 20000), упорядоченные по имени, то вы получите: 10 строк из базы данных; 10 рядов по проводу, без помех.