我有以下表达式(简化):
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()) }
遗憾的是,这不起作用,因为导航属性(Accounts)是EF中的IList或ICollection。这里的模式是什么?很乐意稍微改变一下,但请注意,我不是在动态表达式之后只是可重用的。