コンパイルされたメソッドを一緒に追加できることがわかりました。
Expression<Func<Customer, bool>> ln = c => c.lastname.Equals(_customer.lastName, StringComparison.InvariantCultureIgnoreCase);
Expression<Func<Customer, bool>> fn = c => c.firstname.Equals(_customer.firstName, StringComparison.InvariantCultureIgnoreCase);
Expression<Func<Customer, bool>> fdob = c => c.DOB.ToString("yyyyMMdd").Equals(_customer.DOB.ToString("yyyyMMdd"));
var filter = ln.Compile() + fn.Compile() + fdob.Compile();
これを行うのは理にかなっていますか?
ラムダ式の代わりにフィルターを使用して、顧客のリポジトリをフィルター処理するつもりです。
IEnumerable<Customer> customersFound = _repo.Customers.Where(filter);
ビジネス ロジックに応じて、3 つのコンパイル済みメソッドを一緒に追加する場合と追加しない場合がありますが、必要に応じて選択し、さらにコンパイル済みメソッドを追加することもできます。
それらを一緒に追加するとクエリ文字列が作成されるかどうかを誰かが説明できますか? 誰かがより良い提案を得ましたか?
「Where」ステートメントを連鎖させて通常のラムダ式を使用することもできますが、メソッドをコンパイルしてそれらを追加することで得られるものに興味をそそられます!