LINQ – Eşleşmeyen kayıtları getirme

    Merhabalar, 
    Genellikle projelerde linq kullanırken  farklı  tablolardaki eşleşen  kayıtlartı getiririz.Bu  işlemide  genellikle  JOİN   bazende  UNİON'la   tabloları birleştrip istenilen  verileri  getirebiliriz. Hafta  içinde bu  durumun  tersi başıma  geldi  elimizde olan iki  tablodan  eşleşmeyen  kayıtları  getirmem  gerekti. Bunu  yapabilmek  biraz  araştırma  yaptım  herzamnki  gibi  türkç  kaynak  yok  denecek  kadar  az ilk  olarak Burak  hocamın  bir   makalesine ulaştım.http://www.buraksenyurt.com/post/Tek-Fotoluk-Ipucu-20-(Except-Sorgusu).aspx ) . Ancak  burada  tek  tablo  üzerinden  çalışılmış  ben  iki  farklı  tablodan  gelen verilerden   eşleşmeyen  değerler almam  gerekiyordu.Yani  yapmak  istediğimiz   olay  tablo1'den  ,  tablo2 de  geçen  verileri   çıkarmak.

fark

 

var Sonuc = Tablo1.Where(p => !Tablo2.Select(i=>i.AlanID).Contains(p.AlanID));

odu inceleyecek olursak ;

    – Contains karşılaştırma  işlemi  yapar   true veya  false değeri  döndürür.
    – Contains kullanarak tablo1deki  AlanID ile Tablo2 deki  AlanID yi  karşılaştırıp bunun değilini  aldığımız zaman  eşleşmeyen kayıtları elde etmiş  oluruz.

 

Vesselam…

Bunlar da hoşunuza gidebilir...

2 Cevaplar

  1. Berfin dedi ki:

    Burak Selim hocamız .net konusunda ve bilgi teknolojileri konusunda kendisini çok geliştirmiş bir kişidir. Bir ara benim de eğitmenim olmuştu. Yazınız için teşekkür ederim. 

  2. ugur-talas dedi ki:

    Burak hocadan ders almak bizlerede nasip oldu. İşini her yönüyle mükemmel yapan takdire şayan  bir insan …

ugur-talas için bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir