İlişkisel Generic Listler Join İşlemleri

Ana sayfa Forumlar PROGRAMLAMA ASP.NET İlişkisel Generic Listler Join İşlemleri

  • Bu konu 0 yanıt içerir, 1 izleyen vardır ve en son 12 yıl önce Tolga tarafından güncellenmiştir.
1 yazı görüntüleniyor (toplam 1)
  • Yazar
    Yazılar
  • #12554
    Tolga
    İzleyici

    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.

1 yazı görüntüleniyor (toplam 1)
  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.
Bana Ders Anlat © 2008-2022