次の式があります(簡略化):
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 であるため、これは機能しません。ここのパターンは?物事を少し変更できてうれしいですが、私は動的な式だけを再利用可能なものにしたくないことに注意してください。