Повторно используемые выражения предикатов в запросах LINQ to Entities
Определенный набор критериев, который встречается во многих различных запросах в нашем приложении, постепенно усложняется. Чтобы избежать дублирования этого кода, я хочу разделить эти критерии на метод, который возвращает условия каквыражение которые, в свою очередь, могут применяться при необходимости:
public Expression GetComplexPredicate()
{
// complex predicate is returned as an Expression:
return c => ...
}
Используется как таковой:
var result = repository.Invoice.Where(GetComplexPredicate())
Тем не менее, утверждение ниже выигралскомпилировать, так какc.Invoice это простоICollection.
var result = repository.Customer
.Where(c => c.Country == "US" && c.Invoice.Any(GetComplexPredicate()))
Можно ли каким-либо образом использовать это выражение?