You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检查数据库中byte[]类型文件是否存在?解决空引用异常

正确检查数据库中byte[]类型文件是否存在的方法

你的代码触发空引用异常的核心原因是:当数据库中没有匹配ResultsID的记录时,FirstOrDefault()会返回null,此时直接访问file.Data就会抛出空引用异常——问题出在file本身为null,而非Data的状态。

正确的检查逻辑需要分两步:

  1. 先判断查询到的file对象是否存在(不为null)
  2. 再判断file.Data是否为null或长度为0

修正后的代码示例

var file = db.Attachments.Where(x => x.ResultsID == testResult).FirstOrDefault();

// 先检查file是否存在,再验证Data的有效性
if (file == null || file.Data == null || file.Data.Length == 0)
{
    // 无有效文件的处理逻辑
}
else
{
    // 存在有效文件的处理逻辑
}

额外优化建议

如果只需要判断是否存在有效文件,可以直接在数据库查询阶段完成过滤,减少内存开销:

bool hasValidFile = db.Attachments
    .Any(x => x.ResultsID == testResult && x.Data != null && x.Data.Length > 0);

if (!hasValidFile)
{
    // 无有效文件的处理逻辑
}

内容的提问来源于stack exchange,提问作者Eli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 06:00:02