次の方法に問題があります。
public IQueryable<Customer> ListCustomers(int? parentId)
{
Debug.Assert(parentId == null);
//var list = _customerRepository.List().Where(c => c.ParentId == null);
var list = _customerRepository.List().Where(c => c.ParentId == parentId);
return list;
}
私の DB には、ParentId が null の Customer が 1 つあります。でメソッドを呼び出すとListCustomers(null)
、list
return ステートメントに対して空になります。コメントアウトされた行を交換し、ハードコーディングされた null でクエリを実行すると、リストには 1 人の顧客が含まれます。
この 2 つのクエリの違いの原因は何ですか? c.ParentId == parentId
何も返さないのはなぜですか?