Общий LINQ для WCF может не иметь смысла. В частности, вызовы WCF предоставляют данные только очень особым образом, что на самом деле не соответствует способу работы LINQ. Например, мой сервис может иметь следующий контракт:
List<DAO> GetObjectsInDateRange(DateTime start, DateTime end);
void ExportObjectsToLegacySystem(List<DAO> data);
Как вы выражаете либо в формате LINQ. В частности, когда начало и конец не являются членами DAO. Единственный способ выразить это - предоставить сервису интерфейс IQueryable, и я не знаю, насколько это возможно.
Теперь вы всегда можете сделать:
var data = from dao
in wcfService.GetObjectsInDateRange(DateTime.Today,DateTime.Today.AddDays(50))
where dao.AmountOfStuff > 20
select dao;
При этом вы, безусловно, можете создать интерфейс LINQ, адаптированный к вашему собственному сервису. Допустим, у вашего сервиса есть метод:
List<DAO> GetObjects(DAOFilter filterObject);
где DAOFilter - это объект, который задает все ваши критерии «где», вы можете написать поставщика LINQ, который преобразует все выражения в этот объект DAOFilter. Это было бы невероятно одноразовое решение со значительным объемом работы, поэтому я бы посоветовал против него.
Я повторяю совет, чтобы взглянуть на ADO.Net Data Services .