2009-07-15 20 views
6

मैं सिर्फ यह जानना चाहता हूं कि Select * from TableName की लैम्ब्डा अभिव्यक्ति क्या है। सादे LINQ की तरह यह var res=from s in db.StudentDatas select s होगा; यहां StudentData तालिका का नाम है।तालिका नाम से चुनने का लैम्ब्डा अभिव्यक्ति *

धन्यवाद।

+1

लैम्ब्डा भाव गुमनाम काम करता है, नहीं क्वेरी दी गई हैं। हालांकि वे प्रश्नों के कुछ हिस्सों के रूप में उपयोग किए जाते हैं ... –

+5

इस तरह के प्रश्न क्यों कम हो जाते हैं, जब एक सरल स्पष्टीकरण पर्याप्त होगा? –

+2

@ रॉबर्ट हार्वे: becasue हम haters की दुनिया में रहते हैं –

उत्तर

12

लैम्ब्डा अभिव्यक्ति की जरूरत नहीं है:

var res = db.StudentDatas; 

आप एक इस्तेमाल कर सकते हैं, लेकिन यह नहीं बल्कि व्यर्थ होगा:

var res = db.StudentDatas.Select(s => s); 
+0

के लिए इसका सामान्य चर नाम यह तार्किक परिप्रेक्ष्य से आवश्यक नहीं है , लेकिन यदि कंपाइलर ने चयन() कॉल को अनुकूलित किया है तो LINQ से SQL को डेटाबेस क्वेरी का आह्वान करने का कोई अवसर नहीं होगा। –

+0

मैं उपयोग नहीं करूंगा, लेकिन सिर्फ जानना चाहता था। अभिव्यक्ति के लिए धन्यवाद। – Wondering

+0

@ रिचर्ड मुझे यकीन नहीं है कि आप क्या कह रहे हैं। संकलक उस कोड को अनुकूलित नहीं करेगा जिसे आपको चलाने की आवश्यकता है। –

1

आपको लैम्ब्डा अभिव्यक्ति की आवश्यकता नहीं है। आप सिर्फ संग्रह के सभी सदस्यों को चाहते हैं।

3

संकलक इन पंक्तियों के साथ कुछ करने के लिए यह अनुवाद कर देगा:

db.StudentDatas.Select(s => s) 

एसक्यूएल करने के लिए अनुवाद बेस कक्षा लाइब्रेरी द्वारा किया जाता है। एसक्यूएल, ज़ाहिर है, लैम्ब्डा एक्सप्रेशन का उपयोग नहीं करता है ...

+0

"डीबी" क्या है ? – ShaileshDev

+0

डीबीकॉन्टेक्स्ट https://msdn.microsoft.com/en-us/library/system.data.entity.dbcontext(v=vs.113).aspx –

0

हालांकि दोनों तकनीकी रूप से सही हैं, क्योंकि वे दोनों एक ही परिणाम को अपने सरल रूप में देंगे, यह केवल इसलिए है क्योंकि 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);

इसे बाहर मिले कुछ नाखून सत्र काटने के बाद मुश्किल तरीके से।

-2

कोड:

var allmember = eg_.table.where(x=>x).ToList(); 
संबंधित मुद्दे