簡體   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