2012-01-12 8 views
9

मैं अपने प्रोफाइलर को देख रहा था और ऐसा लगता है कि लिंक एक्सटेंशन विधि Single 2 पंक्तियों का चयन करती है। तो Single LINQ एक्सटेंशन विधि एक क्वेरी Select TOP(2) क्यों बनाती है? क्या यह select top(1) नहीं होना चाहिए?सिंगल LINQ एक्सटेंशन विधि क्वेरी क्यों बनाती है टॉप (2) का चयन करें?

+1

'एकल()' शीर्ष 2 के लिए पूछताछ करना चाहिए; 'पहले() '* * केवल एक के लिए पूछताछ चाहिए। क्या आप वाकई 'सिंगल' क्वेरी नहीं देख रहे हैं? – Gabe

+0

@Gabe आप सही है। मैं गलत सवाल देख रहा था .. क्या शर्म की बात है :(लेकिन फिर भी .. जानना चाहेंगे कि शीर्ष 2 के लिए एकल क्वेरी क्यों है? ऐसा इसलिए है क्योंकि इसे जानने की आवश्यकता है कि क्या इसे एक से अधिक परिणाम मिले हैं? – Rushino

+2

हां, केवल यह जानने का तरीका है कि केवल एक ही परिणाम है 2 के लिए पूछना और सुनिश्चित करें कि आपको केवल 1. – Gabe

उत्तर

11

First केवल एक परिणाम का अनुरोध करता है। Single दो परिणामों का अनुरोध करता है क्योंकि परिणामस्वरूप सेट के बिल्कुल एक सदस्य होने पर यह केवल परिणाम देता है। यदि शून्य या दो (या दो से अधिक) हैं तो यह अपवाद फेंकता है, इसलिए इसे कम से कम दो परिणामों का अनुरोध करना होगा।

संबंधित मुद्दे