前言
在使用net5.0且使用ef查询数据时,会出现查询某个字段值的情况,但是如果当前值为空的情况下,lambda表达式会报错。下面讲解如何解决报错
解决lambad里面获取值为空的报错
示例:
string name = _dbContext.StationInfo.FirstOrDefault(q => q.Id == Id).name;
像上面这个lambda表达式,如果没有这条数据, 就会直接报错
解决办法:
string name = _dbContext.StationInfo.FirstOrDefault(q => q.Id == Id)?.name??" ";
其中?.name的作用就是 如果对象为NULL,则不进行后面的获取成员的运算,直接返回NULL。不加这个的话,会直接报错。
后面的 ??" "
的作用是,如果返会数据为NULL,则返回 " "。
如果是 ?? 0
的话,如果查询的数据为NULL,则但会0。