Я понятия не имею, возможно ли это..., но это было бы прохладно. вопрос состоит в том, возможно ли это, но затем определенный пример, если это возможно.
Я не уверен, какую сигнатуру метода Вы использовали бы для передачи лямбда-выражения в.
Например, метод IList<Group> GetGroups()
Как Вы изменили бы это, чтобы смочь передать лямбда-выражение в него?
Следующий вопрос состоит в том, как Вы кодировали бы лямбда-выражение для возврата всех объектов Группы где, например,
where .deleted == false
илиwhere .DateAdded > aDate
Да, я хочу луну на палке ;) Заранее спасибо.
(редактирование, я думаю, что это немного непродуманно на самом деле из-за уровня доступа к данным, который на самом деле выбрал бы данные..., но предположил бы, что Вы запрашиваете некоторый объектный набор по сервису и не должны волноваться о dal).
Вы можете объявить метод GetGroups
с параметром типа Expression
, который представляет собой предикат, которому группа должна соответствовать, чтобы быть возвращенной:
IList<Group> GetGroups(Expression<Func<Group, bool>> predicateExpression);
Проблема в том, что выражения не могут быть сериализованы, поэтому вы не можете отправить их в службу WCF ... Однако вы можете найдите способ сделать это с помощью проекта Сериализация дерева выражений .
Вы можете
У Мэтта Уоррена есть семнадцать статей в блоге о том, как делать подобные вещи.
Я думаю, что сервисы RIA делают то, что вы хотите, но я не знаю, какая магия за этим стоит.
Вы можете передать "предикат": Func
, который возвращает true или false для данной группы. Поскольку вы можете передать лямбду, где ожидается Func
, это может быть что-то вроде:
var fooGroups = GetGroups(g => g.Name.StartsWith("Foo"));