2012-03-13 11 views
22

ठीक है तो हमारे परियोजना में मैं System.Linq.Dynamic लाइब्रेरी का उपयोग कर रहा हूँ, लेकिन मैं सिर्फ देखा है कि मैं folowing नहीं कर सकते:System.Linq.Dynamic ऑर्डरबैडसेकेंडिंग ("कुछ कॉलम") का समर्थन नहीं करता है?

myDataSource.OrderByDescending ("someColumnName")

क्योंकि मैं निम्नलिखित त्रुटि मिलती है :

अधिभार संकल्प विफल हो गया क्योंकि कोई सुलभ OrderByDescending इन तर्कों के साथ कहा जा सकता है ...

ऐसा लगता है कि लाइब्रेरी केवल OrderBy ("someColumnName") का समर्थन है। क्या इसके लिए कोई कारण है और यदि मैं अवरोही क्रम में रिकॉर्ड्स को पुन: व्यवस्थित करना चाहता हूं तो मैं इस समस्या को कैसे बाधित करूं? क्या मुझे उपयोगकर्ता रिवर्स() उदाहरण के लिए ऑर्डरबी ("कुछ कॉलमनाम") है। रिवर्स()? एक हैक की तरह लगता है ...

किसी भी सलाह बहुत सराहना की जाएगी ...

उत्तर

44

यह मानते हुए कि आप Microsoft नमूना पुस्तकालय से DynamicQuery हेल्पर फ़ाइलों (जो नाम स्थान System.Linq.Dynamic में हैं) का उपयोग कर रहे जैसे आप इस प्रकार के आदेश आप चाहते हैं निर्दिष्ट करने की आवश्यकता तो स्रोत कोड को पढ़ने के बाद यह लग रहा है:

myDataSource.OrderBy("someColumnName descending") 
+0

मैंने सोचा कि ऑर्डरबैडसेकिंग विधि केवल 1 स्ट्रिंग पैरामीटर स्वीकार नहीं करती है? –

+0

क्षमा करें - मैंने जवाब गलत टाइप किया। माइक्रोसॉफ्ट से डायनामिकQuery सहायक में ऑर्डरबी विधि आपको इस तरह के अल्पविराम से अलग स्ट्रिंग ऑर्डरिंग निर्दिष्ट करने की अनुमति देती है। –

+3

हां यह वह उत्तर था जिसे मैं ढूंढ रहा था। यदि मैं जोड़ सकता हूं तो आप वास्तव में केवल myDataSource.OrderBy ("कुछ कॉलमनाम डीईएससी") कह सकते हैं, दूसरे शब्दों में आपको पूरे अवरोही शब्द को टाइप करने की आवश्यकता नहीं है। – Marko

8

आप स्ट्रिंग मान का उपयोग कर रहे (मेरे जैसे) यदि आप इस तरह स्ट्रिंग के लिए यह श्रेणीबद्ध करना होगा :

myDataSource.OrderBy(columnName + " descending"); 

'अवरोही' से पहले एक जगह जोड़ने के लिए मत भूलना अन्यथा आपको एक त्रुटि मिल जाएगी।

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