人を検索できるページがあります。すべての人のリストを取得するか、姓名などの特定の基準でフィルター処理することができます。
これまでのところ、この質問で詳しく説明されている手法を使用しようとしています。
だから私のコードは次のようになります
string firstname=...
string lastname=...
var people=from p in People.All()
where (firstname==null || firstname.ToLower()==p.FirstName.ToLower()) &&
(lastname==null || lastname.ToLower()==p.LastName.ToLower())
select p;
クエリを作成するときに null 参照エラーが発生しますが、名と姓の両方が null の場合です。where句を削除すると、エラーが解消されます。
なぜこれがうまくいかないのでしょうか?C# は where 句の各部分の 2 番目の部分を評価しようとしますか? 短絡したORのせいではないはずですよね?