序列不包含任何匹配元素

AI百科4个月前发布 快创云
57 0

  在C#中利用Lambda执行First或Single查询时,可能会遇到如下异常:

  异常详情:System.InvalidOperationExecption: 序列不包含任何元素

  原因在于,使用First时要求序列中至少存在一个元素,而使用Single时则要求序列中仅存在一个元素。若序列为空,则这两种查询都会抛出异常。

  解决方案:采用FirstOrDefault和SingleOrDefault,当序列为空时,它们会返回对应类型的默认值,而非抛出异常。

  【解决步骤】

  基于上述分析,将First替换为FirstOrDefault后,出现了对象未实例化错误。通过查看First的定义,发现文件为只读状态,无法直接修改。为解决此问题,我添加了一个条件判断。

条件判断
条件判断

  初始查询中,id的值为0,但数据库中不存在SCTId为0的数据。因此,我增加了id>0的条件,以排除id小于或等于0的条目,确保能够检索到有效数据。

© 版权声明

相关文章