2012-03-21 11 views
6

मैं LINQ lambdas में निम्नलिखित SQL विवरण लिखने की ज़रूरत से अधिक एसक्यूएल OrderBy खंड:कैसे LINQ में व्यक्त करने के लिए, एक दो क्षेत्रों

product.OrderByDescending(m => m.ProductScore).OrderBy(m => m.ProductId) 
यह

:

SELECT * 
FROM product 
ORDER BY ProductScore DESC, ProductID ASC 

मैं इस कोड अनुमान दूसरे ऑर्डर द्वारा पहली बार ओवरराइट करने के बराबर नहीं है। क्या कोई समकक्ष है? धन्यवाद

उत्तर

1

उपयोग ThenBy:

var query = db.Products 
       .OrderByDescending(m => m.ProductScore) 
       .ThenBy(m => m.ProductId); 
3

हाँ, आप ThenBy का उपयोग करें:

product.OrderByDescending(m => m.ProductScore).ThenBy(m => m.ProductId) 

(और इसी तरह ThenByDescending)। यह Queryable.ThenBy लिंक है; बेशक Enumerable पर बराबर है।

एक प्रश्न अभिव्यक्ति में, यह होगा:

var query = from product in db.Products 
      orderby product.ProductScore descending, product.ProductId 
      select product; 

ThenBy और ThenByDescendingकेवल IOrderedQueryable/IOrderedEnumerable पर कहा जा कर सकते हैं ... मेरी Edulinq blog post on this for more information देखते हैं।

1

product.OrderByDescending(m => m.ProductScore).ThenBy(m => m.ProductId) 
कोशिश
संबंधित मुद्दे