在此示例代码中
public Company GetCompanyById(Decimal company_id)
{
IQueryable<Company> cmps = from c in db.Companies
where c.active == true &&
c.company_id == company_id
select c;
return cmps.First();
}
如果
cmps
中没有没有数据,我该如何处理?cmps
永远不会为空,因此如何检查 LINQ查询中不存在的数据?所以我可以避免
'cmps.ToList()' threw an exception of type ... {System.NullReferenceException}
将其转换为例如列表时
GetCompanyById(1).ToList();
我是否总是需要才能将其包装在
try catch
块中? 最佳答案
您可以使用Queryable.Any()(或Enumerable.Any())查看cmps
中是否存在成员。这将使您进行显式检查,并根据需要进行处理。
如果您的目标是在没有匹配项的情况下仅返回null
,则只需在返回语句中使用FirstOrDefault而不是First:
return cmps.FirstOrDefault();