Linq to sql में Select All (*) कैसे करें


84

Linq to sql को करते समय आप सभी पंक्तियों का चयन कैसे करते हैं?

Select * From TableA

कृपया क्वेरी सिंटैक्स और विधि सिंटैक्स दोनों में।

जवाबों:


104
from row in TableA select row

या केवल:

TableA

विधि सिंटैक्स में, अन्य ऑपरेटरों के साथ:

TableA.Where(row => row.IsInteresting) // no .Select(), returns the whole row.

अनिवार्य रूप से, आप पहले से ही सभी स्तंभों का चयन कर रहे हैं, चयन तब आपके द्वारा देखभाल किए जाने वाले स्तंभों में बदल जाता है, इसलिए आप निम्न कार्य भी कर सकते हैं:

from user in Users select user.LastName+", "+user.FirstName

एक और जो मुझे करना पसंद है वह है। (int) दिए गए रिकॉर्ड के लिए सभी कॉलम को खींचने के लिए। जैसे TableA.Take (100)
ब्रायन s

क्या आप स्पष्ट कर सकते हैं कि आपको स्पष्ट रूप से उपयोग करने की आवश्यकता क्यों नहीं है from row in TableA.Rows? क्या यह इसलिए Rowsहै क्योंकि डिफ़ॉल्ट संपत्ति है? क्या LINQ की एक विशेषता है, या कहीं और बेक किया हुआ कुछ है? बस उत्सुक।
rory.ap 14

@roryap आपके DB एक्सेस लाइब्रेरी पर निर्भर करता है, यहां मैं LINQ to SQL मान रहा हूं, जहां टेबल पंक्तियां, ADO या जो भी अलग हो सकती हैं।
सिमोन बुकान

69

क्या आप सभी पंक्तियों या सभी स्तंभों का चयन करना चाहते हैं?

किसी भी तरह से, आपको वास्तव में कुछ भी करने की आवश्यकता नहीं है।

DataContext में प्रत्येक तालिका के लिए एक गुण है; आप पूरी तालिका तक पहुंचने के लिए बस उस संपत्ति का उपयोग कर सकते हैं।

उदाहरण के लिए:

foreach(var line in context.Orders) {
    //Do something
}

1
मैं उस सवाल का दूसरा जवाब देता हूं। यह चयनित की तुलना में कहीं अधिक सहायक उत्तर है क्योंकि यह सरल है और अधिक सीधे ओपी के प्रश्न का उत्तर देता है।
tandrewnichols

2
यह उत्तर शीर्ष उत्तर होने के योग्य है। आइए इसे ठीक करें :)
d.popov

हो सकता है कि इसे किसी दिन उतारा गया हो, क्योंकि यह उत्तर "सार्वभौमिक" भी नहीं है, हालांकि यह ओपी को संतुष्ट करता है। मेरे लिए, जब EF के साथ इसका उपयोग करते हैं, तो allOrders DBSet है और IEnumerable नहीं है, इसलिए मैं इसके बाद allOrders.Where () नहीं कर सकता। शायद मैं इसे गलत तरीके से इस्तेमाल कर रहा हूं या कुछ याद किया है, लेकिन एक .Skip (0) को जोड़ने से मेरे लिए जादू हो गया है।
चार्ल्स रॉबर्टो कैनाटो

24
using (MyDataContext dc = new MyDataContext())
{
    var rows = from myRow in dc.MyTable
               select myRow;
}

या

using (MyDataContext dc = new MyDataContext())
{
    var rows = dc.MyTable.Select(row => row);
}

6
इनमें से कोई भी मत करो। इसके बजाय, बस लिखें var rows = dc.MyTable
SLaks

2
उन्होंने क्वेरी सिंटैक्स और विधि सिंटैक्स के लिए कहा, इसलिए मैं उसे दे रहा हूं।
सिमोन फॉक्स

3
जो उसने मांगा था, उसे मत देना; उसे जो चाहिए वह दे। वह स्पष्ट रूप से LINQ-to-SQL को बहुत अच्छी तरह से नहीं समझता है।
एसएलके

नहीं, मैं अभी तक LINQ-to-SQL को अच्छी तरह से नहीं समझता। इसके बारे में किताबें पढ़ने का समय अभी तक नहीं है जब मुझे जानकारी की आवश्यकता होती है तब मैं चारों ओर देखना शुरू करता हूं। इसके अलावा, मैं एनीटी ढांचे के बेहतर होने तक इंतजार कर रहा हूं। चूँकि मैं सीखता हूँ कि चूंकि यह सभी डेटाबेस का उपयोग कर सकता है।
चोबो २

2
पर्याप्त रूप से उचित, हालांकि मेरे द्वारा प्रदान किए गए समाधानों में से कुछ भी गलत नहीं है। वे आपको अधिक से अधिक जटिलता के निर्माण के संदर्भ में शुरू करने के लिए एक अच्छा आधार देते हैं।
साइमन फॉक्स

4

यू डेटाबेस से सभी डेटा का चयन करना चाहते हैं तो यू यह कोशिश कर सकते हैं: -

dbclassDataContext dc= new dbclassDataContext()
List<tableName> ObjectName= dc.tableName.ToList();

अन्यथा आप यह कोशिश कर सकते हैं: -

var Registration = from reg in dcdc.GetTable<registration>() select reg;

और विधि सिंटेक्स: -

 var Registration = dc.registration.Select(reg => reg); 


1

आप sql तालिका से सभी रिकॉर्ड का चयन करने के लिए सरल linq क्वेरी का उपयोग कर सकते हैं

var qry = ent.tableName.Select (x => x) .ToList ();


1

TableAतालिका की एक इकाई के रूप में मानते हुए TableA, और TableADBEntitiesDB इकाई वर्ग के रूप में,

  1. LINQ विधि
IQueryable<TableA> result;
using (var context = new TableADBEntities())
{
   result = context.TableA.Select(s => s);
}
  1. LINQ-to-SQL क्वेरी
IQueryable<TableA> result;
using (var context = new TableADBEntities())
{
   var qry = from s in context.TableA
               select s;
   result = qry.Select(s => s);
}

Native SQL को इस प्रकार भी प्रयोग किया जा सकता है:

  1. देशी एसक्यूएल
IList<TableA> resultList;
using (var context = new TableADBEntities())
{
   resultList = context.TableA.SqlQuery("Select * from dbo.TableA").ToList();
}

नोट: dboSQL सर्वर में एक डिफ़ॉल्ट स्कीमा मालिक है। SELECTडेटाबेस में संदर्भ के अनुसार SQL क्वेरी का निर्माण कर सकते हैं ।



0

मुझे अक्सर कुछ को छोड़कर, 'सभी' कॉलम पुनः प्राप्त करने की आवश्यकता होती है। इसलिए सेलेक्ट (x => x) मेरे लिए काम नहीं करता है।

LINQPad के संपादक सभी कॉलम में * ऑटो-एक्सपेंशन कर सकते हैं।

यहां छवि विवरण दर्ज करें

'* all' का चयन करने के बाद, LINQPad का विस्तार होता है, फिर मैं बिना आवश्यक कॉलम को हटा सकता हूं।

यहां छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.