c# - 如果 linq 查询未找到匹配记录,则对象引用未设置错误?
问题描述
我有这个代码
public object GetMaxReportNo(string OfficeStationCombination = "")
{
try
{
InspectionReport InspectionReport = new InspectionReport();
string VelosiReportNo = "";
var query = uow.InspectionReportRepository.GetQueryable().AsQueryable();
if (query.Any())
{
VelosiReportNo = query.Where(x => x.VelosiReportNo.Contains(OfficeStationCombination)).OrderByDescending(x => x.InspectionReportID).DefaultIfEmpty(null).FirstOrDefault().VelosiReportNo;
}
return VelosiReportNo;
}
catch (Exception ex)
{
throw ex;
}
}
这一行:
VelosiReportNo = query.Where(x => x.VelosiReportNo.Contains(OfficeStationCombination)).OrderByDescending(x => x.InspectionReportID).DefaultIfEmpty(null).FirstOrDefault().VelosiReportNo;
抛出错误:
你调用的对象是空的。
当我传递数据库中尚不存在记录的参数时。但是,我无法弄清楚它返回的是什么?我该如何控制它?
我已经处理null
了,但这不起作用。如果没有找到记录,我该如何处理,以便我可以据此做出决定?
解决方案
query.Where(x => x.VelosiReportNo.Contains(OfficeStationCombination)).Any()
成功了。
完整代码;
if (query.Any())
{
if (query.Where(x => x.VelosiReportNo.Contains(OfficeStationCombination)).Any())
{
VelosiReportNo = query.Where(x => x.VelosiReportNo.Contains(OfficeStationCombination)).OrderByDescending(x => x.InspectionReportID).FirstOrDefault().VelosiReportNo;
}
else
{
VelosiReportNo = null;
}
}
推荐阅读
- python - 使用python无限刷新硒
- java - 将多条消息发布到同一个 pub 子主题的问题
- swift - 动态高度 UITableViewCell 闪烁
- python - 如何在字典中使用数据类?
- c# - 在 checkMarx 中获取 sql 注入漏洞问题:asmx with input as list
- r - 如何为 R 包小插图创建关键功能表
- php - 为什么多查询在一个表单中只运行一次?
- python - 带有 \t 和 \n 分隔符的 .txt 文件到 pandas 数据框
- javascript - 如何将 Redux Reducer 重置为初始状态
- css - 在媒体查询中更改 animated.css vuejs