基本的なLINQクエリを作成するときに、ラムダ式を使用してwhere節を追加することができます。query.Where(c => (init.Contains(c.user)));
。結合された基本LINQクエリでラムダ式を使用する
私の問題は、基本的なLINQクエリでjoin
を使用するクエリでwhere句を2つ追加する必要があることです。
重複したコードを防ぐために、古い基本LINQクエリを追加したラムダ式で置き換えようとしています。
これは私のコードです。
var query = from c in db.Clgcom
join u in db.Dvusr
on c.Comaut equals u.Gitusr
// && (initialen.Contains(c.Tstusr) // <-- query.Where(c => (initialen.Contains(c.Tstusr)));
// This is what im trying to replace// ^^ This works because its in the same table
// || initialen.Contains(u.Clgusr)) // <-- What do i type when i want to include both these conditions?
&& (c.Modid.StartsWith("C")
|| c.Modid.StartsWith("M"))
select c;
if(filter != null){
query = query.Where(c => (initialen.Contains(c.Tstusr)
|| initialen.Contains(u.Clgusr)));
// This doesn't work
}
where節にこれらの2つの条件を追加するラムダ式を使用する方法はありますか?
または、ラムダ式を使用してすべての基本LINQクエリを置き換える必要がありますか?
参加する必要があるのは 'c.Comaut equals u.Gitusr'です。残りはどこにでもあるはずです。 'c.Comaut'と' u.Gitusr'の間に外部キーの関係がある場合はナビゲーションプロパティを代わりに使うこともできます – juharr