Linq查询分配给的变量的值永远不会为NULL

本文关键字:NULL 永远 变量 查询 分配 Linq | 更新日期: 2023-09-27 18:14:18

var query = from k in entity.Candidates where k.CandidateId == candidateid select k;
if(query==null)
{
    return false;
}

我一直在检查变量query是否具有null值。但是要注意,即使结果集不返回任何结果,查询也不等于null。永远不会进入if块。如何简单地检查结果集是否没有内容?

Linq查询分配给的变量的值永远不会为NULL

这是正确的行为:查询对象与从IQueryable对象封装返回的项不同。由于没有运行该查询,因此检查

if (query==null)

验证IQueryable对象创建成功。

要检查查询的结果,您需要尝试运行它,或者在其上调用聚合方法:

  • 你可以运行ToList()并检查Count的结果,或者
  • 调用Any()查询是否有结果,或者
  • 调用FirstOrDefault(),并将其结果与null比较。