我有以下表达式(简化):
from p in Providers
select new { p.Name, p.Accounts.Count(a => a.State == 2) };
这很好用,但现在我想创建一个可重用的表达式,如下所示:
Expression<Func<Account, bool>> MyPredicate() { return a => a.State == 2; }
并像这样使用它:
from p in Providers select new { p.Name, p.Accounts.Count(MyPredicate()) }
不幸的是,这不起作用,因为导航属性(帐户)是 EF 中的 IList 或 ICollection。这里的模式是什么?很高兴能稍微改变一下,但请注意,我并不追求动态表达式,只是可重用的表达式。