(ところで - LINQ-to-SQL で使用されるラムダベースの述語は、C# 2.0 ではなく、C# 3.0 / .NET 3.5 です)
では、具体的に何をしようとしているのでしょうか。
述語は単なるフィルターです (デリゲートまたは式として)。LINQ-to-SQL プロバイダーが処理できる関数 (これら)、または構成可能な関数としてデータ コンテキストにマップされた UDF ( )と組み合わせない限り、TSQL などを直接変更することはできません。FunctionAttribute
最も簡単に:
男性かつ > 郵便番号 = 90210 の場合
var qry1 = from cust in ctx.Customers
where cust.Gender == 'M' && cust.Zip = '90210'
select cust;
var qry2 = from cust in ctx.Customers
where cust.Zip = '90210'
select cust;
または、自明ではない例(動的検索フォーム/個別に組み合わせる)の場合
IQueryable<Foo> query = ctx.Customers;
// note "gender" here is "char?" for this example
if(gender != null) query = query.Where(x=>x.Gender == (char)gender);
if(zip != null) query = query.Where(x=>x.Zip == zip);
等
手動で式ベースの述語を作成することもできますが、それは手間がかかり、Expression APIの知識が必要です。