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
28 yazı bulundu #veritabani
EF Core 10 Yenilikleri: Named Query Filter, LeftJoin ve JSON'da Complex Type
Veritabanı SERİ 28

EF Core 10 Yenilikleri: Named Query Filter, LeftJoin ve JSON'da Complex Type

EF Core 10 LTS ile isimli query filter'lar ve IgnoreQueryFilters(["..."]), LeftJoin/RightJoin, normal lambda alan ExecuteUpdateAsync, JSON'a eşlenen complex type ve ComplexCollection, padding'li parametreli koleksiyonlar, SqlVector ile vektör araması ve SQLite DateTimeOffset breaking change'i.

5 Kas 2026 9 dk 2
EF Core 9 Yenilikleri: UseSeeding, Migration Locking ve PendingModelChangesWarning
Veritabanı SERİ 27

EF Core 9 Yenilikleri: UseSeeding, Migration Locking ve PendingModelChangesWarning

EF Core 9'da eksik migration'ı Migrate anında yakalayan PendingModelChangesWarning, HasData ve DateTime.Now tuzağı, UseSeeding/UseAsyncSeeding, __EFMigrationsLock ile migration locking, kendiliğinden bulunan compiled model'ler ve EFOptimizeContext, complex type ile ExecuteUpdate.

5 Kas 2026 9 dk 2
EF Core 8 Yenilikleri: Complex Type, Primitive Collection ve SqlQuery<T>
Veritabanı SERİ 26

EF Core 8 Yenilikleri: Complex Type, Primitive Collection ve SqlQuery<T>

EF Core 8 LTS ile gelen primitive collection'lar ve json_each, value object için ComplexProperty, entity olmayan tipler için SqlQuery<T>, no-tracking lazy loading, SQLite'ta JSON ve HierarchyId; Contains'in OPENJSON'a geçmesi ve UseCompatibilityLevel(120).

5 Kas 2026 10 dk 6
EF Core 7 Yenilikleri: ExecuteUpdate, ExecuteDelete, JSON Kolonlar ve TPC
Veritabanı SERİ 25

EF Core 7 Yenilikleri: ExecuteUpdate, ExecuteDelete, JSON Kolonlar ve TPC

EF Core 7 ile gelen ExecuteUpdate/ExecuteDelete, owned type'ı JSON kolona yazan ToJson, TPC inheritance, IMaterializationInterceptor, FromSql ve SqlQuery<int>; Encrypt=True ve HasTrigger gibi breaking change'lerle EF Core 6'dan geçiş.

5 Kas 2026 10 dk 3
Eski Projeler: EF Core 3.1 ve EF Core 5'ten EF Core 6'ya Geçiş
Veritabanı SERİ 24

Eski Projeler: EF Core 3.1 ve EF Core 5'ten EF Core 6'ya Geçiş

EF Core 3.0'da client evaluation'ın kalkması, FromSql'in FromSqlRaw/FromSqlInterpolated'a bölünmesi, EF Core 5'in many-to-many, filtered include ve split query'si, EF Core 6'ya geçerken Nullable'ın migration'lara etkisi ve destek durumları.

5 Kas 2026 11 dk 3
EF Core ve Mimari: Repository, CQRS'in Okuma Tarafı ve Dapper'a Geçiş
Veritabanı SERİ 23

EF Core ve Mimari: Repository, CQRS'in Okuma Tarafı ve Dapper'a Geçiş

Generic repository'nin WHERE'i nasıl sessizce belleğe taşıdığını gerçek SQL ile görüyor, DbContext'in zaten bir unit of work olduğunu tartışıyoruz. Aggregate'e özel repository, CQRS okuma tarafında projection ve aynı connection ile transaction'ı paylaşan Dapper ile kemik yapıyı tamamlıyoruz.

5 Kas 2026 10 dk 5
EF Core ile Test: SQLite In-Memory ve InMemory Provider Tuzakları
Veritabanı SERİ 22

EF Core ile Test: SQLite In-Memory ve InMemory Provider Tuzakları

InMemory provider'ın unique index'i, foreign key'i ve raw SQL'i nasıl sessizce geçtiğini gerçek test çıktılarıyla görüyor, SQLite in-memory ile gerçekçi testler kuruyoruz. Aynı context'te assert etmenin yarattığı yalancı yeşili ve DbContext'i soyutlama tartışmasını EF dokümantasyonunun önerileriyle ele alıyoruz.

5 Kas 2026 10 dk 4
EF Core Interceptor'ları ve Event'leri: Audit Alanları ve Yavaş Sorgu Logu
Veritabanı SERİ 21

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

SaveChangesInterceptor ile CreatedAt ve UpdatedAt alanları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 2
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 3
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 alt class gibi sessiz tuzakları görüyoruz.

5 Kas 2026 12 dk 3
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 3
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 2
Blog Haritası