Linq to Entitiesを使用すると、書かれたLINQ文で作成されたLinqオブジェクトでWhere lamba式を実行するとwhere節が機能しません。Where節がLINQ IQueryableクエリで機能しない
これは機能しません。クエリは実行されますが、結果はフィルタリングされずに返されます。
var myQuery = (from l in db.MyTable
select l);
myQuery.Where(r => availableStatusList.Contains(r.Status));
var myObj = myQuery.ToList();
これは機能します。クエリが実行され、結果が適切にフィルタリングされて返されます。
var myQuery = (from l in db.MyTable
select l).Where(r => availableStatusList.Contains(r.Status));
var myObj = myQuery.ToList();
私が理解する限り、これらの両方で同等の結果が返されます。最初のものがWhere句に耳を傾けない理由は何ですか?
あなたはdidnの」
は、文字列のミューテータ機能と同様に、あなたが戻って変数に代入する必要がありますそれをmyQueryに割り当てます。 'Where'節は新しいオブジェクトを作成し、既存のオブジェクトを変更しません。 –
'where'を同じ元のフォーマット(標準からインラインのフォーマットを混在させない)に入れてみてください:lからdb.MyTable where availableStatusList.Contains(l.Status)select l;私はそれがそれを変えるかどうかを知りたいのです。 – BlackjacketMack