Я пытаюсь создать базовый репозиторий для использования с Entity Framework 4.0 и у меня возникли некоторые проблемы. В этом коде ниже, почему это невозможно сделать в одной строке?
public IEnumerable<T> GetAll<T>(Expression<Func<T, bool>> filter)
{
IEnumerable<T> allCustomers = this.GetAll<T>();
IEnumerable<T> result = allCustomers.Where(filter.Compile());
return result;
}
Не приведет ли это к двум операторам SQL: одному без предложения where, который извлекает все строки, и одному с предложением where, которое только извлекает строки, соответствующие предикату?
Как это можно сделать с помощью одного оператора SQL? Я не могу заставить его скомпилироваться, если я пытаюсь привести filter.Compile () к Func .