2011-07-11 17 views
5

FirstOrDefault或SingleOrDefault將返回什麼樣的數據。關於FirstOrDefault或SingleOrDefault

想我的查詢返回3記錄像

empid ename salary 
----- ----- ------ 
1  joy 1500 
2  rob 4500 
3  jen 6500 

所以如果我們使用FirstOrDefault或的SingleOrDefault的話,我會得到什麼樣的結果集。請用例子來解釋。感謝

回答

3

的SingleOrDefault將返回異常,因爲它等待得到一個記錄或沒有記錄和FirstOrDefault將返回第一條記錄(1和喜悅1500) 可以使用的SingleOrDefault當你在那裏包含將在你切切實實的記錄恢復條件案例 - where empid == 1很明顯,你只想要ID爲1

+0

謝謝...給我一個SingleOrDefault的小樣本。我需要知道SingleOrDefault將被使用的情況。請需要一個樣品。 – Mou

+0

你可以使用SingleOrDefault當你的地方包含一個條件,將在你的情況下將記錄返回的情況下 - empid == 1顯然你只想要一個數據庫記錄與ID 1 – kleinohad

34
   | 0 values | 1 value  | > 1 value 
FirstOrDefault | Default  | First value | First value 
SingleOrDefault | Default  | First value | Exception 

而且該表擴展到整個組一個數據庫記錄:

   | 0 values | 1 value  | > 1 value 
First   | Exception | First value | First value 
FirstOrDefault | Default  | First value | First value 
Single   | Exception | First value | Exception 
SingleOrDefault | Default  | First value | Exception 
Last   | Exception | Last value | Last value 
LastOrDefault | Default  | Last value | Last value 

這裏還有另外一個版本的Wi TH一些具體的值,使之更清晰:

   | []   | [1]   | [1,2,3] 
First   | Exception | 1   | 1 
FirstOrDefault | 0   | 1   | 1 
Single   | Exception | 1   | Exception 
SingleOrDefault | 0   | 1   | Exception 
Last   | Exception | 1   | 3 
LastOrDefault | 0   | 1   | 3 
+1

我根本不明白從你的幫助。相反,解釋會更好....感謝 – Mou

+8

@ user72:你不明白?桌子很清澈。 –

+2

@ user728750:對於你的數據樣本,'FirstOrDefault'會給你「喜悅」,而'SingleOrDefault'會拋出異常。 –

3

FirstOrDefault將返回的第一個元素和默認值(默認值值類型和空的引用類型)的元素,如果沒有元素存在。

如果只有一個存在,SingleOrDefault將返回該元素。如果不存在,則默認爲default,如果查詢中包含多個元素,則引發異常。

在你的情況下,FirstOrDefault將返回第一個元素。 而SingleOrDefault會拋出異常。

相關問題