Я строю свой запрос, используя PredicateBuilder из LinqKit.это здорово и делает именно то, что я ищу.
Чтобы сделать мой код более пригодным для повторного использования (таблицы и представления), я создал универсальный класс построителя предикатов:
public class LocalPredicateBuilder<T> where T : IResort
...
var predicate = PredicateBuilder.True<T>(
, который предоставляет метод BuildPredicate.Я могу использовать его так:
var predicate = new LocalPredicateBuilder<Resort>().BuildPredicate();
var resorts = _entities.Resorts.Where(predicate).ToList();
, однако, когда я пытаюсь это сделать, я получаю эту ошибку времени выполнения (кстати, объекты сущности реализуют IResort): Невозможно привести тип 'ConsoleApplication1.Entities.Resort 'для ввода' ConsoleApplication1.Entities.IResort '.LINQ to Entities поддерживает только приведение типов примитивов модели данных сущностей
я пробовал приведение (не сработало):
var rlist = eq.Cast<Resort>().ToList();
Есть ли другой способ обойти эту проблему?
ОБНОВЛЕНИЕ
не очень повезло с получением предикатов для работы с использованием интерфейсов .. поэтому я решил мою проблему, перейдя с POCO.