Linq - просто делегат методов, выполняющих операции над коллекциями объектов.Поэтому, если ваш клиент знает о типах, которые должен обрабатывать ваш сервер, то вы сможете создавать и передавать Func<T>
объекты на сервер для обработки его коллекций объектов.Я сделал это один раз.Просто помните, что ваш клиент должен знать обо всем, что ваш сервер может получить в запросе linq.
Если вы не хотите, чтобы клиент мог создавать запросы linq с нуля, то я не вижу никакиххороший способ.Несколько плохих, но я не пойду туда.
В качестве полностью вымышленного примера вы можете сделать так:
Func<Order,bool> filter = o => o.Price > 0;
// pass the filter object to the server and on server do:
var res = objectCollection.Where(filter);
При условии, что ваши объекты имеют тип Order и содержатЕсли свойство называется «Цена», запрос в этом случае вернет все заказы, которые чего-то стоят.Как вы также можете видеть, ваш клиент должен знать о типе «Заказ», чтобы настроить запрос.