2015-07-14 2 views
7

में GroupBy साथ शामिल मैं 5 तालिका जहाँ से मैं का उपयोग कर linq.i डेटा से डाटा पढ़ने में निम्न क्वेरी का उपयोग कर रहा कुछ जानकारी प्राप्त करना चाहते हैं।एकाधिक LINQ

var query = (from GRD in _tblStudents.GetQueryable() 
      join apt in _tblApplicants.GetQueryable() 
        on GRD.ApplicantID equals apt.ApplicantID 
      join cls in _tblClasses.GetQueryable() 
        on GRD.CityID equals cls.ClassID 
      join prg in _tblPrograms.GetQueryable() 
        on cls.ProgramID equals prg.ProgramID 
      join city in _tblCities.GetQueryable() 
        on GRD.CityID equals city.CityID 
      where GRD.AcademicYearID == yearId && cls.ProgramID == programId 
      group apt by new{apt.Gender} into grouped 
      select new CityWiseStudentModel 
      { 
        CityName=city.CityName, 
        //'city' does not exist in the current context 
        Gender = grouped.Count(), 
        programName=prg.Program, 
       //'prg' does not exist in the current context 
       } 

      ); 

कैसे मैंशहर से पीआरजी तालिका

+0

संपूर्ण क्वेरी में समूहीकृत वस्तुओं को प्रचारित करने के लिए बस 'शामिल होने' के बजाय 'शामिल होने' का प्रयास करें। ध्यान दें कि आपको क्वेरी को फिर से लिखना होगा क्योंकि आपके पास 'शामिल होने' के बाद सीधे 'शामिल' नहीं हो सकता है (मध्यवर्ती 'चयन' की आवश्यकता है)। – Kryptos

उत्तर

4

group <--> by <--> into <--> से मेज और कार्यक्रम का नाम शहर का नाम प्राप्त कर सकते हैं IGrouping<a,b>

करने के लिए अपने दायरा बदल मेरे राय केवल apt.Gender अपने प्रमुख नहीं है लेकिन city.CityName और prg.Program

इस (या som कोशिश ई समान):

group apt by new{apt.Gender, city, prg} into grouped 
select new CityWiseStudentModel 
{ 
    CityName = grouped.Key.city.CityName, 
    Gender = grouped.Count(), //rename GenderCount 
    programName = grouped.Key.prg.Program, 
    // Gender = grouped.Key.Gender, 
} 
1

याद रखें कि groupedकेवल बातें आप समूहीकृत किया है का आयोजन करेगा। यदि आप केवल adt समूह करते हैं, तो city और prg आपके चयन में उपलब्ध नहीं होंगे।

तो तुम करना होगा:

  1. grouped में शहर और कार्यक्रम शामिल करें (अन्यथा वे उपलब्ध नहीं हैं)
  2. पहुँच CityName और Programgroupedसंग्रह के अंदर

ऐसा कुछ ऐसा करना चाहिए वह चाल:

... 
group new { apt, cls, prg, city } by new{apt.Gender} into grouped 
select new CityWiseStudentModel 
{ 
    CityNames = grouped.Select(g => g.city.CityName), 
    ... 
    programNames = grouped.Select(g => g.prg.Program) 
} 
+1

मुझे लगता है कि '= ap' गुम हो गया है। – Rawling

+0

@ राउलिंग, बिल्कुल सही। ठीक कर दिया :) –

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