номер
Entity Framework должен уметь видеть все, что предпринимается.
Так что, если вы просто сделали что-то вроде этого:
queryable.Where(f => DelegateFunc(f));
Где определение DelegateFunc выглядит так:
public bool DelegateFunc(Foo foo)
{
return foo.Id > 4;
}
Entity Framework не имеет возможности заглянуть внутрь делегата, взломать его и преобразовать в SQL.
Не все еще потеряно.
Если ваша цель состоит в том, чтобы повторно использовать общие фильтры и т. Д., Вместо этого вы можете сделать что-то вроде этого:
public Expression<Func<Foo, bool>> DelegateExpression{
get{
Expression<Func<Foo,bool>> expr = f => f.Id > 4;
return expr;
}
}
queryable.Where(DelegateExpression);