Lambda İfadelerini Veritabanları İçin Kullanmak

Lambda ifadelerini kullanırken =>(Lambda Operatörü) ifadesini kullanırız. Bu ifadeleri veritabanları için kullanmak gerektiğinde karşımıza birçok seçenek çıkmaktadır. Şimdi gelin PersonelDB iveritabanı ve PeronelBilgi tablosu oluşturalım. Tablomuz şöyle olsun;

Bir Wİndows Forms Application oluşturalım. Ve Solution Explorerda proje üzerine sağ tıklayıp Add-New item-ADO.NET Entity Data Model oluşturalım.Formumuza bir datagridview ve buton ekleyelim. Page load olayına şu kodu yazalım;

PersonelDBEntities veri = new PersonelDBEntities();
private void Form1_Load(object sender, EventArgs e)
 {
   //PersonelDB veritabanındaki PersonelBilgi tablosundaki tüm veriler
   dataGridView1.DataSource = veri.PersonelBilgi.ToList();
 }

Ve sonuç;

Şimdi veritabanımızla ilgili diğer Lambda ifadelerini butona kodlayalım ve  açıkllamalarıyla yazalım;

//PersonelBilgi tablosundaki AdSoayad alanına göde A..Z ye göre sırala 
dataGridView1.DataSource = veri.PersonelBilgi.OrderBy(k => k.AdSoyad).ToList();

//PersonelBilgi tablosundaki AdSoayad alanına göde Z..A ye göre sırala 
dataGridView1.DataSource = veri.PersonelBilgi.OrderByDescending(k => k.AdSoyad).ToList();

//AdSoyad Alanını Z..A ya sırala ve ilk 3 kişi göster
dataGridView1.DataSource = veri.PersonelBilgi.OrderByDescending(k => k.AdSoyad).Take(3).ToList();

//id si 11 olan personeli kaydı yakala
PersonelBilgi personel = veri.PersonelBilgi.FirstOrDefault(k => k.id == 11);
string kisi=personel.AdSoyad;

//id si olan kaydın AdSoyad bilgisini getir
string adsoyad = veri.PersonelBilgi.FirstOrDefault(p => p.id == 11).AdSoyad;

//Departmanid si 3 olan kayıtları göster
dataGridView1.DataSource=veri.PersonelBilgi.Where(p => p.DepartmanİD == 3).ToList();

//deprtmanid 3 ve id si 10 olan ismi göster
dataGridView1.DataSource = veri.PersonelBilgi.Where(p => p.DepartmanİD == 3 && p.id == 10).OrderBy(p => p.AdSoyad ).Take(5).ToList();

//Adres içinde a harfi olan kayıtları getir
dataGridView1.DataSource = veri.PersonelBilgi.Where(p => p.Adres.Contains("a")).ToList();

//AdSoayad bilgisi a ile başlayanları göster
dataGridView1.DataSource = veri.PersonelBilgi.Where(p => p.AdSoyad.StartsWith("a")).ToList();

//AdSoayad bilgisi a ile bitenleri göster
dataGridView1.DataSource = veri.PersonelBilgi.Where(p => p.AdSoyad.EndsWith("a")).ToList();

//Personel bilgisi varmı yok mu
bool durum1 = veri.PersonelBilgi.Any();

//departman id si 8 olan var mı
bool durum2 = veri.PersonelBilgi.Any(c => c.DepartmanİD == 8);

//İsminde 'ha' içeren   
bool durum3 = veri.PersonelBilgi.Any(p=>p.AdSoyad.Contains("ha"));

//Bilgiler diziye aktarılır.
PersonelBilgi[] pdizi = veri.PersonelBilgi.ToArray();

//kayıt sayısı
int adet = veri.PersonelBilgi.Count();

//Maas alanındaki maaşların toplamı
decimal? toplamfiyat = veri.PersonelBilgi.Sum(p => p.Maas);

//en çok maaş alan
decimal? encok = veri.PersonelBilgi.Max(a => a.Maas);

//en az maaş alan
decimal? enaz = veri.PersonelBilgi.Min(a => a.Maas);

//AdSoyad alanını A..Z ye sırala yap ilk 5 kişiyi atla diğerlerini listele
dataGridView1.DataSource= veri.PersonelBilgi.OrderBy(p => p.AdSoyad).Skip(5).ToList();

//isme göre sıraladığında ilk 5 kişiyi atla 10 kişiyi listele
dataGridView1.DataSource = veri.PersonelBilgi.OrderBy(p => p.AdSoyad).Skip(5).Take(4).ToList();

//departmanid nin benzersiz onalrını getir
dataGridView1.DataSource = veri.PersonelBilgi.Select(a => a.DepartmanİD).Distinct().ToList();

//13 nymaralı kaydı getir
PersonelBilgi prdct = veri.PersonelBilgi.Find(13);

//Tüm personelin maaşı 4000 den büyük mü
bool durum = veri.PersonelBilgi.All(p=>p.Maas>4000);

//Maaşların ortalamsını alır.
double? ortalama= veri.PersonelBilgi.Average(p => p.Maas);

//Maaşı en fazla olan kişiyi al
PersonelBilgi kisi = veri.PersonelBilgi.First(m => m.Maas == (veri.PersonelBilgi.Max(x => x.Maas)));

//Maaşı 4000 den küçük olanları atla
var bilgi=veri.PersonelBilgi.SkipWhile(x=>x.Maas < 4500);

//Aşağıdaki kod, "v" dışında herhangi bir harfle başlayan bir ada sahip bir kişi bulana kadar tüm kişileri alır
var bilgi=veri.PersonelBilgi.TakeWhile(x=>x.AdSoyad.StartsWith("v"));

//Eski tarz olarak direk sql ifadeleri de kullanmak mümkündür.                                      List<PersonelBilgi> bilgi = veri.PersonelBilgi.SqlQuery("select * from PersonelBilgi where Maas>5000").ToList();
dataGridView1.DataSource = bilgi;

//Son kaydı getirir.Last de aynı işi görür
PersonelBilgi bilgi = veri.PersonelBilgi.ToList().LastOrDefault();
string a = bilgi.AdSoyad;



Etiketler
Where OrderBy Descending SqlQuery FirstOrDefault First SingleOrDefault Contains Any Count Take
Mesaj Yaz