c# linq异常: 对象引用未设置为对象的实例。
c# linq异常: 对象引用未设置为对象的实例。
这个问题已经在这里有答案了:
当我运行一个 Linq 查询时,只有在找到项目时才会返回结果;如果没有找到项目,则会抛出“对象引用未设置为对象的实例”异常
我该如何避免抛出此异常?我想返回一个结果,即使是空的。
var id = db.table.Where(a => a.item == passed_item).FirstOrDefault().id;
admin 更改状态以发布 2023年5月22日
你可以使用空值条件运算符:
int? id = db.table.Where(a => a.item == passed_item).FirstOrDefault()?.id;
这个方法FirstOrDefault
,如果找不到对象,会返回null
。因此,如果您尝试读取id
的值,将会抛出异常。
避免这种情况的一种方法如下:
// I suppose that the id you want to read is an int. // If it isn't, please change the code correspondingly. int id; // Try to get the record. var record = db.table.Where(a => a.item == passed_item) .FirstOrDefault(); // If you find the record you are looking for, then read it's id. if(record != null) { id = record.id; }
更新
另一个选项是按照DavidG
在他的评论中提到的方式:
var record = db.Table.FirstOrDefault(a => a.item == passed_item);
接下来的步骤相同。