2011-09-19 10 views
5

मैंमैं LINQ अभिव्यक्ति के साथ कुछ समस्याएं हैं, OrderBy(), जाएं(), ले लो() काम करता है गलत

var a = ctx.EntitySet 
     .OrderByDescending(t => t.Property) 
     .Skip(pageIndex * size) 
     .Take(size); 

OrderBy (जैसे LINQ अभिव्यक्ति) छोड़ें (पहले) फोन और (लो) चाहिए, लेकिन छोर अंत में होता है। क्या मैं इस समस्या को हल कर सकता हूं?

क्षमा करें, कई लोग मेरे प्रश्न को नहीं समझ पाए। क्वेरी किसी भी त्रुटि के बिना चलाता है, लेकिन मैं

//It is I want 
1) Sorting ALL data 
2) Use Skip() and Take() 

क्या मैं परिणाम में अगर मैं अपने उदाहरण में की तरह करना चाहते हैं: 1) जाएं() 2) ले लो() 3) केवल छंटाई तत्वों taked!

+1

यह ऐसा करने का उचित तरीका है में मदद करता है, वास्तविक समस्या क्या है? – cjk

+0

चूंकि क्वेरी ठीक दिखती है, इसलिए आप जेनरेट की गई एसक्यूएल क्वेरी के साथ पास हो सकते हैं क्योंकि लिखित यह ठीक प्रतीत होता है। http://weblogs.asp.net/scottgu/archive/2007/07/31/linq-to-sql-debug-visualizer.aspx –

+0

अगर आपको वह जानकारी मिली है जो आपको मिली –

उत्तर

0

आप इस

की कोशिश की है, तो आप समाधान नीचे यह पहली बार रिकॉर्ड मिल जाएगा के लिए जाने के लिए और राशि की तुलना में है कि रिकॉर्ड है जो आप गलत परिणाम को जन्म दे सकती पर छँटाई करता है।

var a = ctx.EntitySet 
     .Skip(pageIndex * size) 
     .Take(size); 

a = a.OrderByDescending(t => t.Property); 

या

आप पहली बार छँटाई कर रास्ता के बाद और इस तरह से आप परिणाम आप चाहते हैं प्राप्त कर सकते हैं द्वारा उस के बाद रिकॉर्ड हो रही है, इसलिए तुलना में, इस

var a = ctx.EntitySet 
    .OrderByDescending(t => t.Property) 
    .Skip(pageIndex * size) 
    .Take(size); 

करने के लिए उचित तरीका है लेकिन यह हमेशा आपकी आवश्यकता पर निर्भर करता है जो आप चाहते हैं ....

0

इस नमूने में कमांड ऑर्डर महत्वपूर्ण नहीं है। यह आपके डेटा को पहले सॉर्ट करेगा और उसके बाद आपका डेटा एकत्रित किया जाएगा।

2

मैं पता नहीं क्यों, लेकिन किसी भी तरह यह मेरे लिए काम करता है, आशा है कि यह आप

var a1 = from p in ctx.EntitySet 
     .OrderByDescending(t => t.Property) 
     select p; 

var a2 = from p in a1 
     .Skip(pageIndex * size) 
     .Take(size) 
     select p; 
संबंधित मुद्दे