Sınıflarımız aşağıdaki gibi olduğunu düşünelim.
Kod:
public class Personeller
{
public int PersonelId { get; set; }
public string AdSoyad { get; set; }
public string CepTel { get; set; }
public string Email { get; set; }
public int KurumdakiGorevId { get; set; }
public int KurumId { get; set; }
public int KidemYili { get; set; }
public string Sifre { get; set; }
}
public class Kurumlar
{
public int KurumId { get; set; }
public string Kurum { get; set; }
}
public class KurumGorevleri
{
public int GorevId { get; set; }
public string Gorev { get; set; }
}
Bu sınıfları birbirleriyle ilişkilendirebilir ve gelen yapıları sql deki inner join benzeri hızlı bir şekilde birleştirebiliriz. Linq bize join ile güzel bir yöntem sunuyor.
Kod:
List KurumGorevleriListesi = veritabani_islemleri.SelectKurumGorevleri(-1);
List KurumListesi = veritabani_islemleri.SelectKurumlar(-1);
List PersonelListesi = veritabani_islemleri.SelectPersoneller(-1);
var veriler = from p in PersonelListesi
join kl in KurumListesi on p.KurumId equals kl.KurumId
join kg in KurumGorevleriListesi on p.KurumdakiGorevId equals kg.GorevId
select new
{
PersonelId = p.PersonelId,
AdSoyad = p.AdSoyad,
CepTel = p.CepTel,
Email = p.Email,
KurumdakiGorevId = p.KurumdakiGorevId,
KurumId = p.KurumId,
KidemYili = p.KidemYili,
Sifre = p.Sifre,
Kurum = kl.Kurum,
Gorev = kg.Gorev
};
Herhangi bir data kontrolüne bunu bağlamamızda sorun değil gayet basit.
Kod:
Gridview1.DataSource = veriler;
Gridview1.DataBind();
İnşallah işinize yarar.