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