2012-01-04 17 views
27

में एकाधिक तालिकाओं मैं एक बहुत ही सरल SQL क्वेरीसमूह LINQ

Select r.SpaceID,Count(*), SpaceCode from Rider r join Spaces s 
on r.SpaceID=s.SpaceID 
Group By r.SpaceID, s.SpaceCode 

कृपया ध्यान दें कि खंड द्वारा अपने समूह से अधिक टेबल पर है, मैं LINQ में भी ऐसा ही करना चाहते हैं, मुझे पता है कैसे समूह एकल तालिका के लिए , लेकिन कई तालिकाओं के बारे में मुझे कोई जानकारी नहीं है।

group new { r,s } by new { r.SpaceID, s.SpaceCode } 
+0

बस यहाँ देख है: http: // stackoverflow। कॉम/प्रश्न/3435485/linq-group-by-multiple-table –

+0

धन्यवाद, मैंने पहले ही इसे देखा है, लेकिन Concat एक अच्छा विकल्प नहीं लगता है, इसके अलावा मेरी दोनों तालिकाओं के लिए संरचना बहुत अलग है, एस ओ यह मेरे लिए काम नहीं करेगा, – MegaMind

उत्तर

52

कई तालिकाओं समूहीकरण के लिए आप के रूप में कर सकते हैं

(
    from r in db.Rider 
    join s in db.Spaces 
     on r.SpaceID equals s.SpaceID 
    group new { r,s } by new { r.SpaceID, s.SpaceCode } 
    into grp 
    select new 
    { 
     Count=grp.Count(), 
     grp.Key.SpaceID, 
     grp.Key.SpaceCode 
    } 
) 

कहाँ db डेटाबेस संदर्भ

+1

बिग धन्यवाद पंकज, यह एक आकर्षण की तरह काम करता है – MegaMind

+0

आपका स्वागत है @MegaMind। –

25

इस मदद कर सकता है:

+1

भाग का चयन किया जाना चाहिए: 'चयन नई { गणना = grp.Count(), grp.Key.SpaceID, grp.Key.SpaceCode }' –

+0

यही सच। मैंने समाधान – Arion

+0

@ एरियन अपडेट किया: पेट्र बेहेन्स्की का सुधार अभी भी आपके समाधान में प्रकट नहीं होता है। – Buggieboy

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