FirstOrDefault抛出异常而不是null

时间:2016-05-19 22:32:43

标签: c# .net entity-framework linq lambda

我正在尝试使用FirstOrDefault从我的商店中获取商品。如果它不存在,我希望它返回null

我理解FirstOrDefault应该这样做。该数据库不存在,因此我希望它返回null,除非它导致SQLException

为什么这只是归还null

var setting = context.Settings.FirstOrDefault(s => s.ApplicationName == _applicationName && s.Name == name);

2 个答案:

答案 0 :(得分:3)

抛出SQLException的事实告诉您,即使向数据库询问您要处理的数据也存在问题。正如你所说的“数据库不存在”,我认为SQLException将由此引起。

FirstOrDefault很可能甚至无法执行,因为访问Settings属性已经抛出SQLException

答案 1 :(得分:2)

这是默认行为,.FirstOrDefault()在源不存在时抛出异常。当源发生时返回Null,但特定实体不存在。

https://msdn.microsoft.com/en-us/library/bb340482(v=vs.100).aspx