LINQ式の組み合わせに関する記事をたくさん読んだことがありますが、それらはand'sandor'sしかカバーしていないようです。私はこのソリューションを実装しています:
http://blogs.msdn.com/b/meek/archive/2008/05/02/linq-to-entities-combining-predicates.aspx
このコードを機能させるにはどうすればよいですか?
Expression<Func<Crop, bool>> chooseOranges = crop => crop.IsOrange;
Expression<Func<Farm, bool>> selectFarm = farm => farm.HasCows;
selectFarm = selectFarm.And(farm => farm.Crops.Any(chooseOranges);
コンパイルしますが、実行時に.NET1025エラーをスローします。ChooseOrangesを文字通りのテキストに置き換えた場合は機能しますが、chooseOrangesはビジネスロジックを使用して1つずつ構築されます。上でリンクしたコードはさまざまなExpression.Foo()関数に依存しているようですが、役立つものが見つかりませんでした。