给category.NAME赋值时出现空引用错误的技术求助
空引用错误解决方案
问题根源很明确:FirstOrDefaultAsync在找不到符合ID == categoryId && (bool)p.STATE条件的记录时,会返回null,这时直接访问category.NAME就会触发空引用异常。
解决方法
先检查category是否为null,再执行后续赋值操作,同时根据业务需求处理无匹配记录的场景:
修改后的代码示例:
var category = await _companyContext.PRODUCTCATEGORIES.FirstOrDefaultAsync(p => p.ID == categoryId && (bool)p.STATE); // 先判断记录是否存在 if (category == null) { // 可根据业务需求抛异常、返回错误提示等,示例: throw new InvalidOperationException($"未找到ID为{categoryId}且状态有效的产品分类"); } category.NAME = name; category.WORKPLACEID = workplaceid; _companyContext.Update(category);
如果只是想避免报错(不强制处理无数据场景),也可以用null条件运算符跳过赋值,但这种写法会隐藏无匹配的情况,需谨慎使用:
category?.NAME = name; category?.WORKPLACEID = workplaceid; if (category != null) _companyContext.Update(category);
内容的提问来源于stack exchange,提问作者ismail temel
相关产品推荐
相关产品推荐

