9
我在看我的分析器,似乎Linq擴展方法Single
選擇2行。那麼爲什麼Single
LINQ擴展方法創建一個查詢Select TOP(2)
?不應該是select top(1)
而是?爲什麼Single LINQ擴展方法創建查詢選擇TOP(2)?
我在看我的分析器,似乎Linq擴展方法Single
選擇2行。那麼爲什麼Single
LINQ擴展方法創建一個查詢Select TOP(2)
?不應該是select top(1)
而是?爲什麼Single LINQ擴展方法創建查詢選擇TOP(2)?
First
只請求一個結果。 Single
請求兩個結果,因爲只有結果集中有一個成員才返回結果。如果有零個或兩個(或多於兩個)它會引發異常,所以它必須至少請求兩個結果。
'Single()'應該查詢前2; 'First()'*應該*只查詢一個。你確定你沒有看Single-Query嗎? – Gabe 2012-01-12 02:22:05
@加貝你沒錯。我正在看錯誤的查詢..真是一個恥辱:(但仍然..想知道爲什麼單個查詢頂部2?這是因爲它需要知道它是否有多個結果? – Rushino 2012-01-12 02:41:16
是的,唯一的方式知道是否只有一個單一的結果是要求2,並確保你只得到1. – Gabe 2012-01-12 02:45:14