![](/img/trans.png)
[英]When does EF Core LINQ query result in null coalescing despite SingleOrDefault() would return 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.