• 1397/06/13

ایجاد رابطه در دو جدول و مرج کردن آنها :

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

من میخوام که اطلاعات دو تا جدول را در یک دیتا گرید نمایش بدم بطور مثال یک تیبل contacts  دارم که نام و نام خانوادگی ، واحد و  شماره تماس هست و هر کدوم از این کانتکت ها جز یک Company id  دارند که توسط ریلیشن  به تیبل  Contacts  متصل هست .

حالا اگر من بخوام که ستون های جدولم نام و نام خانودگی و شماره تماس ، واحد  و نام شرکت در یک دیتا گرید نشون داده بشه چطور میتونم این کار را انجام بدم(چون یک دیتا سورس بیشتر نمیتونم بهش بدم) 

 

چون دیدم پاسخی ندادید دوباره مطرح کردم چون واقعا تو این مورد گیر کردم،امیدوارم که ناراحت نشید و من را هم داخل فیلم هاتون مثال نزنید :D

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

این تیبل کانتکت من هست

 

و اینم هم تیبل کمپانی من (بین تیبل Contacts  و  Company یه ریلشن هست که ای دی کمپانی را بهش وصل میکنه)

من الان میخوام داخل DataGrid خودم نام و نام خانوادگی شماره تماس ، واحد و نام شرکت که تو تیبل company هست را بدم.

مدل Contacts به صورت زیره 

 public partial class Contacts
    {
        public int id { get; set; }
        public int CompanyId { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Unit { get; set; }
        public string Phone { get; set; }
    
        public virtual Company Company { get; set; }
    }

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

    public class ContactsViewModel
    {

        public int id { get; set; }
        public int CompanyId { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Unit { get; set; }
        public string Phone { get; set; }
        public string Company { get; set; }

    }

که  تقریبا همون مدل Contacts هست ولی این دفعه اسم کمپانی را بر می گردونه.

الان داخل ریپوزیتوری Contacts هم یه اینترفیس نوشتم به شکل زیر 

IEnumerable<ContactsViewModel> GetAllContacts();

حالا شما لطف کنید بگید که من باید چه کدی بنویسم قسمت 

        public IEnumerable<ContactsViewModel> GetAllContacts()
        {
      
// code ...
        
        }

 

و این قسمت هم دیتاگرید منه

با تشکر

  • 1397/06/14
  • ساعت 11:18

سلام Join بزنید و با Select New اطلاعات مورد نیاز را دریافت کنید و به DataSource گرید وصل کنید 

در گرید هم در DataField ستونها نام ستون رو قرار بدید تا Bind بشوند


logo-samandehi