LINQ Söz Dizimleri ve Sık Kullanılan LINQ Metotları
LINQ (Language Integrated Query) C# dilinde SQL sorgularını metotlar veya sorgu söz dizimleri yöntemleriyle programlama dilinden kopmadan çalıştırabilmemizi sağlar. Bu sorgular koleksiyonlar veya veri tabanları üzerinden çalıştırılabilir.
LINQ kütüphanesinin Query ve Method adı verilen iki farklı söz dizimi bulunmaktadır.
Query Syntax
Bu yazım şeklinin aslında ham SQL sorgusu yazmaktan pek bir farkı yoktur. Örnek:
Ham SQL sorgusundan en çok göze çarpan farkı select işleminin en sonda yapılması diyebiliriz. Select atarken sonucu bir model yerine object üzerinden de alabilirsiniz bu sizin kullanımınıza kalmış bir durum.
Method Syntax
Bu yazım şekli ise LINQ’ nun sunmuş olduğu metotları kullanarak sorgu oluşturmanızı sağlar. Örnek:
Method söz diziminde en basit işlemlerden birisi olan Join operasyonu ne kadar da zor görünüyor değil mi? Join, Group By gibi işlemler için Query söz dizimini tercih etmenizi tavsiye ederim.
Artık temelde iki kullanıma da hakim olduğumuza göre sık kullanılan birkaç metot kullanımından bahsedebiliriz.
Where( )
En sık kullanılan sorgu metodudur. Aradığımız şartı Lambda Expression şeklinde vermenizi bekler. IEnumerable tipinde data döner. Örnek:
ToList( )
Çoğunlukla Where( ) metodundan sonra kullanılarak gelen dataların List veri tipine çevrilmesi ve RAM’e çekilmesini sağlar. Örnek:
Veri tabanından gelebilecek yüklü dataların tamamını ToList( ) ile RAM’ e almaya çalışmak performansı düşürebilir.
FirstOrDefault( )
Where( ) gibi Lambda Expression şartı ile çalışır fakat liste yerine verilen şarta uyan ilk data’ yı döner. Aranan data bulunamazsa default olarak null dönecektir. Örnek:
Bu metodun yanı sıra First( ) metodu bulunmaktadır fakat verilen şarta uygun data bulunamazsa exception fırlatarak programın kırılmasına sebep olur bu sebeple try-catch bloğu ile bu durumu kontrol etmiyorsanız kullanmanızı önermiyorum.
Vakit ayırıp okuduğunuz için teşekkür ederim…