以下linq语句在未找到匹配记录时返回异常错误。无论如何要处理这个?,请指教,谢谢
AdventureEntities hem = new AdventureEntities ();
Guid productId;
Adventure.Product list= hem.Product .Where(x => x.Product== productId).FirstOrDefault();
答案 0 :(得分:4)
不,不应该抛出异常。但是,它会将list
设置为null
- 因为这是FirstOrDefault
在没有结果时的作用。
如果您取消引用list
,则会获得NullReferenceException
。您可以通过首先检查无效来避免这种情况:
if (list != null)
{
// Use the list
}
另请注意,您可以使用接受谓词的FirstOrDefault
重载,以使代码更简单:
var list = hem.Product.FirstOrDefault(x => x.Product== productId);