Linq 语句在找不到记录时返回错误

本文关键字:返回 错误 记录 找不到 语句 Linq | 更新日期: 2023-09-27 18:33:29

下面的 linq 语句在未找到匹配记录时返回异常错误。有没有办法处理这个?,请指教,谢谢

AdventureEntities hem = new AdventureEntities ();
Guid productId;
Adventure.Product list= hem.Product .Where(x => x.Product== productId).FirstOrDefault();

Linq 语句在找不到记录时返回错误

不,这不应该引发异常。但是,它将list设置为null - 因为当没有结果时,这就是FirstOrDefault所做的。

如果随后取消引用list ,则会得到一个NullReferenceException。您可以通过先检查无效性来避免这种情况:

if (list != null)
{
    // Use the list
}

另请注意,您可以使用接受谓词的 FirstOrDefault 重载来使代码更简单:

var list = hem.Product.FirstOrDefault(x => x.Product== productId);