4
在整個我們的應用程序中發生在許多不同查詢中的一些特定標準緩慢地變得更加複雜。爲了避免這種代碼的重複,我想出來拆分這些標準成返回條件爲表達可以依次施加在必要的方法: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 .voice只是一個ICollection。
var result = repository.Customer
.Where(c => c.Country == "US" && c.Invoice.Any(GetComplexPredicate()))
以任何方式使用這種表達方式嗎?