Linq Query分配的变量永远不会为NULL

时间:2014-07-23 14:56:04

标签: c# asp.net linq

var query = from k in entity.Candidates where k.CandidateId == candidateid select k;

if(query==null)
{
    return false;
}

我一直在检查变量query的值是否为null。但实现了,即使结果集返回任何查询也不等于null。永远不要进入if块。 我怎样才能简单地检查结果集是否没有?

1 个答案:

答案 0 :(得分:3)

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

if (query==null)

验证是否已成功创建IQueryable对象。

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

  • 您可以运行ToList()并检查结果的Count
  • 在查询上调用Any()以查看是否有任何结果,或
  • 致电FirstOrDefault(),并将其结果与null进行比较。