我正在尝试使用FirstOrDefault
从我的商店中获取商品。如果它不存在,我希望它返回null
。
我理解FirstOrDefault
应该这样做。该数据库不存在,因此我希望它返回null
,除非它导致SQLException
。
为什么这只是归还null
?
var setting = context.Settings.FirstOrDefault(s => s.ApplicationName == _applicationName && s.Name == name);
答案 0 :(得分:3)
抛出SQLException
的事实告诉您,即使向数据库询问您要处理的数据也存在问题。正如你所说的“数据库不存在”,我认为SQLException
将由此引起。
FirstOrDefault
很可能甚至无法执行,因为访问Settings
属性已经抛出SQLException
。
答案 1 :(得分:2)
这是默认行为,.FirstOrDefault()在源不存在时抛出异常。当源发生时返回Null,但特定实体不存在。
https://msdn.microsoft.com/en-us/library/bb340482(v=vs.100).aspx