Определенный набор критериев, которые встречаются во многих разных запросах в нашем приложении, постепенно усложняется. Для того, чтобы избежать дублирования этого кода, я хочу, чтобы разделить эти критерии из в метод, который возвращает условия как Expression, что в свою очередь может быть применен в случае необходимости:Многоразовые предикатные выражения в запросах LINQ to Entities
public Expression<Func<Invoice, bool>> 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()))
Можно ли каким-либо образом использовать это выражение?