Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
LINQ Aggregation Operatörleri: Count, Sum, Average, Min, Max, Aggregate ve MinBy/MaxBy
Boş sequence'te Sum neden 0, Max neden exception döner ve nullable selector ile DefaultIfEmpty çözümleri. Count ile .NET 6 TryGetNonEnumeratedCount, Average'ın dönüş tipi, Sum'ın checked overflow'u, değer yerine element döndüren MinBy/MaxBy, Aggregate'in üç overload'u ve aynı sorguyu kaç kez enumerate ettiğin.
LINQ Partitioning: Take, Skip, TakeWhile, Chunk ve Take(Range)
TakeWhile neden bir filtre değildir, Skip ve Take ile doğru sayfalama ve sıralamanın sessiz kuralı, TakeLast/SkipLast'ın sona kadar okuması, .NET 6 ile gelen Take(Range) ve array slice farkı, Chunk ile paketlere bölmek ve partitioning operatörlerinin kaynaktan tam olarak ne kadar okuduğu.
LINQ Element Operatörleri: First, Last, Single, ElementAt ve OrDefault
First, Last, Single ve ElementAt ailesi ile OrDefault kardeşleri; value type'larda 0'ın 'bulunamadı' ile karışması, .NET 6'nın varsayılan değer parametresi ve Index overload'ları, First ile Single arasındaki niyet farkı ve nullable uyarıları.
LINQ ile Projection: Select, SelectMany ve Anonymous Type
Select ile bire bir, SelectMany ile bire çok projection; DTO'ya dönüştürmek, result selector ile üst bilgiyi korumak, kartezyen çarpım, anonymous type'ın eşitlik ve with kuralları, method dışına tuple mı record mı.
LINQ ile Filtreleme ve Sıralama: Where, OrderBy, ThenBy ve Reverse
Where ve index overload'u, ikinci OrderBy'ın ilkini neden sildiği, ThenBy ile çok key'li sıralama, OrderBy'ın stable, List.Sort'un unstable oluşu, kültüre bağlı string sıralaması ve Reverse ile OrderByDescending farkı.
LINQ Deferred Execution: Sorgu Ne Zaman Çalışır? IEnumerable ve IQueryable
LINQ sorgusunun tanımlandığında değil dolaşıldığında çalışması, element element streaming, hemen çalışan ve non-streaming operatörler, çoklu enumeration'ın bedeli ve Func ile expression tree üzerinden IEnumerable ile IQueryable farkı.
LINQ Nedir? C# ile Query Syntax ve Method Syntax
LINQ'in döngülerle yazdığımız sorgulara getirdiği değişiklik, onu mümkün kılan C# 3.0 özellikleri, query syntax'ın derleyicide method çağrısına nasıl çevrildiği, hangi yazımı ne zaman seçmek gerektiği ve ilk tuzaklar.
EF Core ile LINQ Sorguları: SQL Çevirisi, Client Evaluation ve IQueryable Tuzağı
EF Core'da LINQ sorgusunun SQL'e çevrilişini adım adım izliyoruz: deferred execution, ToQueryString ve LogTo, filtreleme, sıralama ve sayfalama, projection, First/Single/Find farkı, son Select'te izin verilen client evaluation ve sessizce bütün tabloyu çeken IEnumerable tuzağı.