İçeriğe geç

C# LINQ Nedir? Koleksiyonlar ve Veritabanı Sorguları

22.03.2024 2 okunma

LINQ Nedir?

LINQ (Language Integrated Query), C# diline entegre edilmiş veri sorgulama teknolojisidir. Koleksiyonlar, diziler, XML, veritabanları ve daha fazlası üzerinde SQL benzeri sözdizimi veya fluent API ile sorgulama yapılmasını sağlar. LINQ sayesinde farklı veri kaynakları için tek bir sorgulama paradigması kullanılır; bu da kod tutarlılığını ve okunabilirliğini artırır.

LINQ Sözdizimi: Query ve Method

LINQ'nin iki yazım biçimi vardır:

// Query Syntax (SQL benzeri)
var sonuc = from p in products
            where p.Price > 100
            orderby p.Name
            select p;

// Method Syntax (Fluent)
var sonuc = products
    .Where(p => p.Price > 100)
    .OrderBy(p => p.Name);

Temel LINQ Operatörleri

  • Where – Filtreleme
  • Select – Projeksiyon (veri dönüştürme)
  • OrderBy / OrderByDescending – Sıralama
  • GroupBy – Gruplama
  • Join / GroupJoin – İki koleksiyon birleştirme
  • First / FirstOrDefault – İlk eleman
  • Any / All – Koşul kontrolü
  • Count / Sum / Average / Max / Min – Aggregate

LINQ ile Anonim Tip ve Projeksiyon

var ozet = siparisler
    .GroupBy(s => s.MusteriId)
    .Select(g => new {
        MusteriId = g.Key,
        ToplamSiparis = g.Count(),
        ToplamTutar = g.Sum(s => s.Tutar)
    })
    .OrderByDescending(x => x.ToplamTutar);

LINQ to Entities (Entity Framework)

Entity Framework Core ile LINQ sorguları SQL sorgularına çevrilir. IQueryable yapısında zincir sorgular veritabanına tek seferlik optimize SQL olarak gönderilir. AsNoTracking() salt okunur sorgularda performansı artırır.

Deferred Execution

LINQ sorguları tanımlandıklarında değil, iterasyon başladığında (foreach, ToList, Count vb.) çalışır. Bu "ertelenmiş çalıştırma" büyük veri setlerinde bellek kullanımını optimize eder.

Bilkey C# Programlama Kursu

Bilkey Bilişim Akademisi C# Programlama Kursu'nda LINQ, Entity Framework Core, async/await ve modern C# özellikleri uygulamalı olarak öğretilmektedir. Kurtköy merkezimizde birebir ders alarak .NET uzmanı olun. 0216 354 7979

c# linq nedir linq sorgu c# lambda ifadesi c# entity framework linq c# koleksiyon sorgulama
İLERİ DÜZEY C# PROGRAMLAMA hakkında bilgi almak ister misiniz?

Birebir özel yüz yüze eğitim yada uzaktan eğitim, esnek ders saatleri ile Pendik Kurtköy'de.