2010-07-20 8 views
7

तो मैं जो कर रहा हूं वह एक एक्सएमएल दस्तावेज़ का उपयोग कर रहा है ताकि ऑर्डर निर्धारित किया जा सके जिसमें कुछ SQL स्क्रिप्ट को डेटाबेस अद्यतन द्वारा चलाने की आवश्यकता है।क्या LINQ द्वारा XDocument से आइटम्स का ऑर्डर किया गया है, गारंटीकृत?

एक्सएमएल क्या कॉन्फ़िग फ़ाइल यह बताया गया है कि इस प्रारूप

<ScriptRules> 
    <Database databaseName = “string”> 
     <Folder folderPath = “string” executeAllFiles = boolean> 
      <file order=”first or last”>“Filename”</file> 
     </Folder> 
    </Database> 
</ScriptRules> 

तो वर्ग कि डेटाबेस पर sql फ़ाइलों के सभी कार्यान्वित परिवर्तन पर इस पर लग रहा है यह कनेक्शन है और पर निर्भर करता है फ़ोल्डर से फ़ाइलों को निष्पादित करता है इस प्रकार है करने के लिए।

अब मेरे सवाल यह है:

कहते हैं कि मैं एक दस्तावेज़ है कि 4 Database नोड्स है, और उनमें से प्रत्येक के अंदर file नोड्स के एक वर्गीकरण के साथ अंदर Folder नोड्स के n संख्या चला रहे हैं।

यह ग्रहण करने के लिए मुझे के तार्किक है कि अगर Database नोड पर एक For Each पाश है कि मैं एक XElementdatabase.Elements("Database") है कि वे आदेश है कि वे xml फ़ाइल में प्रदर्शित हासिल कर लिया जाएगा का उपयोग करते हुए लिया गया है के अंदर? (फ़ाइल नोड्स के लिए समान)

जहां तक ​​मैं यह बताने में सक्षम हूं, मामला है, लेकिन मैं उत्पादन डेटाबेस पर इसका उपयोग शुरू करने से पहले ही सत्यापित करना चाहता था।

उत्तर

9

हां, Elements दस्तावेज़ ऑर्डर में तत्व लौटाता है। the docs से, "वापसी मान" में:

XElement XContainer है कि बच्चों से युक्त का एक IEnumerable<T> एक मेल XName, दस्तावेज़ क्रम में।

+0

आप भावना 'किसी ने LINQ के बारे में प्रश्न पूछा' क्या ज़रूरत है? – msarchet

3

हां, जब तक आप PLINQ का उपयोग नहीं करते हैं, तब भी आप इसे तत्वों को क्रम में देने के लिए कह सकते हैं।

var orderedCities = (from city in cities.AsParallel().AsOrdered() 
           where city.Population > 10000 
           select city) 
           .Take(1000); 

http://msdn.microsoft.com/en-us/library/dd460677.aspx

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