繁体   English   中英

linq-to-sql SingleOrDefault返回null

[英]linq-to-sql SingleOrDefault return when null

我正在编写一个linq-to-sql查询,并且正在从一个表中加载一个ID(数据库中的bigint和我的代码中的long bigint ),如下所示:

var SomeQuery = (from x in ...
                 select x.ID).SingleOrDefault();

得到结果后,如果返回为空,则使用SingleOrDefault 这是否意味着如果结果为空,则SomeQuery变量将为0还是null?

谢谢。

如果您查看SingleOrDefault的文档

返回序列的唯一元素;如果序列为空,则返回默认值;否则,返回默认值。 如果序列中有多个元素,则此方法将引发异常。

明确指出,如果序列为空,则将返回默认值 ,long和bigint的默认值为 0 为什么在下面解释

默认关键字状态的文档

在泛型类和方法中,出现的一个问题是,当您事先不了解以下内容时,如何将默认值分配给参数化类型T:

T是引用类型还是值类型。

如果T是值类型,则它是数字值还是结构。

给定参数化类型T的变量t,语句t = null仅在T是引用类型且t = 0仅适用于数值类型而不适用于结构的情况下才有效。 解决方案是使用默认关键字,对于引用类型,该关键字将返回null,对于数值类型,将返回

如果未找到任何元素,则返回默认值。(int的默认值为0)

如果找到一个,则返回值。

如果发现多个,则抛出异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM