没有找到记录时,Linq语句返回错误

时间:2013-10-02 06:24:23

标签: c# linq entity-framework-4.1

以下linq语句在未找到匹配记录时返回异常错误。无论如何要处理这个?,请指教,谢谢

AdventureEntities hem = new AdventureEntities ();
Guid productId;

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

1 个答案:

答案 0 :(得分:4)

不,不应该抛出异常。但是,它会将list设置为null - 因为这是FirstOrDefault在没有结果时的作用。

如果您取消引用list,则会获得NullReferenceException。您可以通过首先检查无效来避免这种情况:

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

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

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