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.
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…
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.
Burak hocadan ders almak bizlerede nasip oldu. İşini her yönüyle mükemmel yapan takdire şayan bir insan …