• 1397/06/19

inner join در لامبدا :

سلام و درود بر استاد گل

یه سوال داشتم در مورد لامبدا

من join رو بلدم

where رو هم بلدم

حالا میخوام بگم که دو تا جدول رو join کن با هم و توی نتیجه یه where بیار  اونایی که مثلا z=2 هستن رو بیار از این نتیجه

مثلا جدل x و y رو join کن رو f و g به شرطی که n=2 باشه

میشه راهنمایی کنید و ممنون

  • 1397/06/19
  • ساعت 10:34

سلام 

List<Person> People = new List<Person>();
List<PersonType> PeopleTypes = new List<PersonType>();

var joined = People.Join(PeopleTypes, 
  PeopleKey => PeopleKey.PersonType, 
  PeopleTypesKey => PeopleTypesKey.TypeID, 
  (Person, PersoneType) => new 
    { 
      Name = Person.Name, 
      TypeID = PersoneType.TypeID 
    });

 


  • 1397/06/19
  • ساعت 14:06

ممنون استاد

ولی where  نیومده تو دستور

where باید کجاش باشه؟

عرض کردم ، هم where رو تونستم کار کنم هم join رو - با ترکیب این دو تا مشکل دارم


  • 1397/06/19
  • ساعت 14:26

قبل از join باید where بزارید 


  • 1397/06/19
  • ساعت 14:33

سرچ کنید Join In Lambda With Where


  • 1397/06/19
  • ساعت 15:15

ببخشید

میدونم سوالم زیاد شده

این آخریشه , لطفا

این کد sql من هستش

select * from bazargani_tankhah_sanad inner join bazargani_tankhah on bazargani_tankhah_sanad.id=bazargani_tankhah.sanad_id where bazargani_tankhah_sanad.user_id=1

این کد به من یه لیست بر میکردونه (شامل یک یا جند ردیف). درست؟

حالا کد لامبدای این چی میشه؟

 

کد شما رو اینجوری پیاده کردم

   [HttpGet]
        [Route("TankhahSanadJoinByUserId/{userid}")]
        public List<bazargani_tankhah_sanad> GetTankhahSanadJoinByUserId(int Userid)
        {

           var where = dbtankhah_sanad.tankhah_sanad.Where(p => p.User_Id == Userid).ToList();
            var joined = where.Join(dbtankhah_radif.tankhah_radif,
    sanad => sanad.Id,
    radif => radif.sanad_id,
    (sanad, radif) => new
    {
      sanad = sanad,
      radif = radif
  }).ToList();
            return joined;
        }

ولی این ارور رو از من گرفت


  • 1397/06/19
  • ساعت 15:58

هر چی هست به کد join مربوط نمیشه

فکر کنم مربوط به تبدیل نتیجه به لیست هستش

خروجی تابع من یه لیست باید باشه ولی انگار خروجی مد من لیست نیست

درسته استاد؟

خروجی من چی هست الان؟

لیست هستش؟ یه لیست که تشکیل شده از عناصر دو تا تیبل جوین شده؟


  • 1397/06/19
  • ساعت 17:34

باید خروجی را .ToList() کنید 


  • 1397/06/19
  • ساعت 17:36

استاد خط آخر رو ببینید . tolist رو گذاشتم


  • 1397/06/19
  • ساعت 17:40

میدونید این کد برای کجاست؟

توی برنامه دیوار توی api می نوشتیم که مثلا ID رو پاس بدیم از طریق URL و لیست بگیریم

حالا من میخوام یه UserId پاس بدم با URL  و یه لیست join شده از دو تا تیبل رو به من توی API بده


  • 1397/06/19
  • ساعت 17:41

متن خطا میگه نوع خروجی همخوانی نداره 

 


  • 1397/06/19
  • ساعت 17:43

درست استاد ، علت چی میتونه باشه

با توجه به کد من

بازم تکرار کنم این موضوع رو شاید کمکی بکنه

توی برنامه دیوار توی api می نوشتیم که مثلا ID رو پاس بدیم از طریق URL و لیست بگیریم

حالا من میخوام یه UserId پاس بدم با URL  و یه لیست join شده از دو تا تیبل رو به من توی API بده

 

  [HttpGet]
        [Route("TankhahSanadJoinByUserId/{userid}")]


       
        public List<SanadRadifJoin> GetTankhahSanadJoinByUserId(int Userid)
        {




            var joined = dbtankhah_sanad.tankhah_sanad.Where(p => p.User_Id == Userid).Join(dbtankhah_radif.tankhah_radif,
      sanad => sanad.Id,
      radif => radif.sanad_id,
      (sanad,radif) => new {sanad,radif}).ToList();

          

            return joined;
        }

 


logo-samandehi