हालांकि दोनों तकनीकी रूप से सही हैं, क्योंकि वे दोनों एक ही परिणाम को अपने सरल रूप में देंगे, यह केवल इसलिए है क्योंकि db.table
का डिफ़ॉल्ट व्यवहार "चयन" है। दृश्यों के पीछे, वे अलग हैं। जबकि एक System.Data.Linq.Table
है, दूसरा System.Linq.IQuerable
है। उदाहरण के लिए
var x = db.table ; var y= db.table(s=>s);
X = y;
एक संकलक त्रुटि में परिणाम होगा।
गतिशील लिंक लाइब्रेरी का उपयोग करते समय, ऐसे मामलों में जहां आपको रनटाइम पर गतिशील क्वेरी बनाना है, आपको अपने प्रारंभिक चयन के रूप में IQuerable
का उपयोग करना होगा। var qry = db.table(s=>s);
जिसका मतलब है के रूप में वर के qry = db.table;
तो फिर तुम पर और श्रृंखला की तरह आपके प्रश्नों जा सकते हैं का विरोध किया: qry = qry.Where(bla bla bla);
इसे बाहर मिले कुछ नाखून सत्र काटने के बाद मुश्किल तरीके से।
स्रोत
2016-03-28 18:27:37
लैम्ब्डा भाव गुमनाम काम करता है, नहीं क्वेरी दी गई हैं। हालांकि वे प्रश्नों के कुछ हिस्सों के रूप में उपयोग किए जाते हैं ... –
इस तरह के प्रश्न क्यों कम हो जाते हैं, जब एक सरल स्पष्टीकरण पर्याप्त होगा? –
@ रॉबर्ट हार्वे: becasue हम haters की दुनिया में रहते हैं –