2011-01-14 19 views
10

काम नहीं करते हैं मैं अपने प्रश्न के दो OrderBy तरीकों लागू होते हैं, किLINQ - कई OrderBy तरीकों

query.OrderBy(rec => rec.Name).OrderByDescending(rec => rec.Title); 

तब ही दूसरी विधि की तरह लागू किया जाता है, पहले एक नजरअंदाज कर दिया है। क्या यह एक बग है? क्या होगा यदि मुझे एक कॉलम के लिए आरोही क्रम और दूसरे के लिए अवरोही क्रम की आवश्यकता है? क्या यह विधि वाक्यविन्यास द्वारा बिल्कुल प्राप्त नहीं किया जा सकता है?

उत्तर

25

इस प्रयास करें:

query.OrderBy(rec => rec.Name).ThenByDescending(rec => rec.Title); 

आपकी दूसरी OrderBy अपना पहला परिणाम सेट reseting है। यही कारण है कि ThenBy एक्सटेंशन मौजूद है। यह आपके पहले परिणाम सेट को सुरक्षित रखेगा, जबकि इसे अतिरिक्त सॉर्टिंग लागू किया जाएगा।

अनिवार्य रूप से, छद्म एसक्यूएल के रूप में अपने मौजूदा समाधान कुछ इस तरह दिखेगा:

results = SELECT * FROM Obj ORDER BY Name; 
results = SELECT * FROM results ORDER BY Title DESC; 

... जो नहीं है तुम क्या चाहते। ThenBy विस्तार कुछ इस तरह दिखेगा:

results = SELECT * FROM Obj ORDER BY Name ASC, Title DESC 
+0

स्पष्टीकरण –

+0

बहुत बढ़िया विस्तृत विवरण के लिए धन्यवाद! धन्यवाद! –

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