如果返回Null, Linq查询崩溃
本文关键字:查询 崩溃 Linq 返回 Null 如果 | 更新日期: 2023-09-27 18:11:12
我运行这个查询,如果查询返回空值,程序崩溃。
var cust = db.Customers.FirstOrDefault(x => x.telephone == txtTel.Text);
if (cust.BlackList == 1)
{
MessageBox.Show("This customer is blacklisted, Do you wish to continue with this job?");
}
请建议我一些有效的解决办法谢谢。
你得到一个空指针,因为FirstOrDefault返回对象的默认值,如果没有找到结果(在这种情况下,它是空的):
var cust = db.Customers.FirstOrDefault(x => x.telephone == txtTel.Text);
if (cust != null && cust.BlackList == 1)
{
MessageBox.Show("This customer is blacklisted, Do you wish to continue with this job?");
}
您需要检查null
,因为如果没有满足您的条件的记录,FirstOrDefault
将返回:
if(cust != null && cust.BlackList == 1)
FirstOrDefault将返回一个默认值,如果列表中没有满足条件的元素,在这种情况下它将为空。当你在null值上调用属性时,自然会导致一个异常。
应该检查cust是否为null,如:
if(cust != null && cust.BlackList == 1)
当然,根据应用程序的逻辑,如果用户不存在,您可以显示另一条消息