Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
81 yazı bulundu
EF Core Interceptor'ları ve Event'leri: Audit Field'ları ve Yavaş Sorgu Logu
Veritabanı SERİ 21

EF Core Interceptor'ları ve Event'leri: Audit Field'ları ve Yavaş Sorgu Logu

SaveChangesInterceptor ile CreatedAt ve UpdatedAt field'larını otomatik dolduruyor, DbCommandInterceptor ile eşiği aşan sorguları logluyor, SavingChanges ve StateChanged event'leriyle change tracker'ı canlı izliyoruz. Async override'ı unutunca neden hiçbir şeyin çalışmadığını da görüyoruz.

5 Kas 2026 10 dk 28
EF Core'da Owned Type ve Value Converter: Adres, Enum ve Strongly Typed Id
Veritabanı SERİ 20

EF Core'da Owned Type ve Value Converter: Adres, Enum ve Strongly Typed Id

Kimliği olmayan değerleri OwnsOne ve OwnsMany ile sahibine bağlıyor, enum'u metin olarak saklıyor, Id'leri kendi tiplerine sarıyoruz. Value comparer olmadan kaybolan değişikliği ve SQLite'a özgü OwnsMany tuzağını gerçek çıktılarla görüyoruz.

5 Kas 2026 11 dk 22
EF Core'da Inheritance Mapping: TPH, TPT ve Hangisini Ne Zaman Seçmeli
Veritabanı SERİ 19

EF Core'da Inheritance Mapping: TPH, TPT ve Hangisini Ne Zaman Seçmeli

Bir class hiyerarşisini EF Core tablolara nasıl çevirir? Discriminator kolonuyla TPH'yi ve tip başına tablo kuran TPT'yi gerçek SQL çıktılarıyla karşılaştırıyor, modele eklenmeyen derived class gibi sessiz tuzakları görüyoruz.

5 Kas 2026 12 dk 23
EF Core'da Global Query Filter: Soft Delete, Multi-Tenancy ve IgnoreQueryFilters
Veritabanı SERİ 18

EF Core'da Global Query Filter: Soft Delete, Multi-Tenancy ve IgnoreQueryFilters

HasQueryFilter ile soft delete ve multi-tenancy kuruyor, Remove'u UPDATE'e çeviriyor, IgnoreQueryFilters ile filtreyi kapatıyor ve required navigation'larda INNER JOIN yüzünden kaybolan satırlar gibi ilişki tuzaklarını gerçek SQL ile inceliyoruz.

5 Kas 2026 9 dk 23
EF Core'da Performans Temelleri: N+1, Projection, AsNoTracking ve Compiled Query
Veritabanı SERİ 17

EF Core'da Performans Temelleri: N+1, Projection, AsNoTracking ve Compiled Query

N+1 sorgularını komut sayarak yakalıyor, projection ile DTO'ya geçiyor, tracking'in, index'in, split query'nin ve compiled query'nin etkisini SQLite üzerinde ölçüyor ve TagWith ile LogTo kullanarak sorguları izliyoruz.

5 Kas 2026 9 dk 24
ASP.NET Core'da EF Core: AddDbContext, Scoped Lifetime, Factory ve Pooling
Veritabanı SERİ 16

ASP.NET Core'da EF Core: AddDbContext, Scoped Lifetime, Factory ve Pooling

DbContext'i ASP.NET Core'a AddDbContext ile bağlıyor, scoped lifetime'ı ContextId ile görüyor, singleton ve background service tuzaklarını çözüyor, AddDbContextFactory ile AddDbContextPool'un ne zaman işe yaradığını gerçek çıktılarla inceliyoruz.

5 Kas 2026 8 dk 32
EF Core'da Raw SQL: FromSqlRaw, FromSqlInterpolated, Keyless Entity ve SQL Injection
Veritabanı SERİ 15

EF Core'da Raw SQL: FromSqlRaw, FromSqlInterpolated, Keyless Entity ve SQL Injection

FromSqlRaw ile FromSqlInterpolated'ın farkını, üzerine LINQ eklenince oluşan SQL'i, $ ile yapılan SQL injection tuzağını, ExecuteSql komutlarını, keyless entity ile view mapping'ini ve SQL Server'da stored procedure çağırmayı gerçek çıktılarla görüyoruz.

5 Kas 2026 10 dk 21
EF Core'da Concurrency: Token, rowversion ve DbUpdateConcurrencyException
Veritabanı SERİ 14

EF Core'da Concurrency: Token, rowversion ve DbUpdateConcurrencyException

Lost update'i gerçek bir örnekle görüyor, concurrency token ile optimistic concurrency kuruyor, SQL Server'da rowversion'ı, SQLite'ta Guid sürüm kolonunu kullanıyor ve DbUpdateConcurrencyException'ı retry ile çözüyoruz.

5 Kas 2026 10 dk 24
EF Core'da Transaction'lar: SaveChanges, BeginTransaction ve Savepoint'ler
Veritabanı SERİ 13

EF Core'da Transaction'lar: SaveChanges, BeginTransaction ve Savepoint'ler

SaveChanges'in örtük transaction'ını loglarla görüyor, birden fazla SaveChanges'i BeginTransaction ile tek bütün yapıyor, savepoint'lerle kısmi rollback yapıyor ve TransactionScope ile retry stratejisinin tuzaklarına bakıyoruz.

5 Kas 2026 11 dk 26
EF Core ile Veri Kaydetme: SaveChanges, İlişkili Graf ve Disconnected Entity'ler
Veritabanı SERİ 12

EF Core ile Veri Kaydetme: SaveChanges, İlişkili Graf ve Disconnected Entity'ler

EF Core'da veri kaydetmenin iki dünyası: connected senaryoda Add/Remove ve yalnızca değişen kolonları yazan SaveChanges, SQLite ve SQL Server'da batching, ilişkili graf kaydetme ve orphan kayıtlar; disconnected senaryoda Update'in bütün kolonları yazması, yükle-değiştir, SetValues, Attach ve IsModified.

5 Kas 2026 11 dk 25
EF Core'da Change Tracking: Entity State'leri, AsNoTracking ve Identity Resolution
Veritabanı SERİ 11

EF Core'da Change Tracking: Entity State'leri, AsNoTracking ve Identity Resolution

EF Core'un change tracker'ını açıyoruz: beş entity state'i, ChangeTracker.Entries ve DebugView, aynı satır için tek object kuralı (identity resolution), AsNoTracking ile AsNoTrackingWithIdentityResolution farkı, DetectChanges'in ne zaman çalıştığı ve 'already being tracked' hatası.

5 Kas 2026 10 dk 26
EF Core'da İlişkili Veri Yükleme: Include, Explicit ve Lazy Loading, Split Query
Veritabanı SERİ 10

EF Core'da İlişkili Veri Yükleme: Include, Explicit ve Lazy Loading, Split Query

EF Core'da ilişkili veriyi getirmenin üç yolunu gerçek SQL çıktılarıyla karşılaştırıyoruz: Include/ThenInclude ve filtered include, Entry API ile explicit loading, proxy'lerle lazy loading ve N+1 faturası; sonra cartesian explosion ve AsSplitQuery.

5 Kas 2026 12 dk 31
Blog Haritası