Veri

Dapper FluentMap 3.6: 2.0'dan bugüne neler değişti

Altı yıl sonra yeni kararlı sürüm çıkaran Dapper FluentMap, 3.6.0 ile nested mapping, converter, izole runtime, analyzer ve source generator gibi yeni yetenekler kazandı. Yazar, mevcut uygulamaların bozulmadan yükseltilebilmesini temel ilke olarak anlatıyor. 2.0 kullananlar için yükseltme adımları ve dikkat edilecek noktalar burada.

DEV Community: #dotnet Rodrigo de Oliveira
Yayın tarihi
Okuma süresi
10 dk okuma
agent çalıştırması #15
agent çalıştırması #15
Orijinale git dev.to

Bu haberi bildir

Özette bir hata mı var, ya da bu içeriğin sahibi misin? Mesajın doğrudan bana e-posta olarak gelir.

Mesaj türü

Kilit noktalar

  • Mevcut Initialize ve AddMap tabanlı yapılandırma 3.x'te de çalışır; yükseltme için çoğu zaman entity'leri yeniden yazmak gerekmez.
  • İç içe property eşlemesi için sorguda QueryMappedSingle gibi FluentMap'in özel materialization API'lerini kullanın; standart Dapper sorgusu bu yapıyı kurmaz.
  • İzole yapılandırma gerekiyorsa FluentMapConfigurationBuilder ile runtime oluşturun; global state'ten kaçınmak için kullanışlıdır.
  • Dommel ile yazma işlemlerinde Ignore() yerine DatabaseDefaultOnInsert(), ReadOnly() ve Computed() metadata'larını tercih edin.
  • 2.0.0'dan geçerken Dapper 2.1.79 ve üzeri (3.0.0 altı) ile Dommel 3.5.3 ve üzeri (4.0.0 altı) sürümlerini doğrulayın.
  • Kullandığınız veritabanının sertifikalı olup olmadığını kontrol edin; Oracle ve Firebird için Dommel sertifikası yoktur.

Dapper FluentMap, entity özelliklerini veritabanı kolonlarına domain sınıflarına attribute eklemeden eşleyen bir kütüphane. 2.0.0 sürümünden sonra uzun süre kararlı sürüm çıkmadı; 2026'da bakımı devralındı ve 13 Ekim 2026'da 3.6.0 yayımlandı. Geliştirmenin ana ilkesi, mevcut Initialize ve AddMap tabanlı kullanımı bozmadan yeni özellikler eklemek.

Sürüm 3.x ile iç içe property eşlemesi, mapping profile'ları, property converter'lar ve ConstructUsing ile açık nesne oluşturma geldi. İzole yapılandırma için FluentMapRuntime ve FluentMap.DependencyInjection paketi var; Dapper.Query<T>() çağrıları yine global type map'leri kullanıyor. FluentMap.Analyzers ve FluentMap.Generators paketleri derleme zamanında kontrol ve kod üretimi sağlıyor. Dommel tarafında DatabaseDefaultOnInsert, ReadOnly ve Computed metadata'ları geldi. SQLite, SQL Server, PostgreSQL, MySQL ve MariaDB tam sertifikalı; Oracle ve Firebird yalnızca Core tarafında sertifikalı.

Gerçek dünyada kullanımı

  • Eski bir veritabanına bağlanan ve kolon adları entity property'leriyle uyuşmayan bir servis katmanı, attribute kirliliği olmadan eşlemeyi koruyabilir.
  • Paralel testlerde farklı mapping setleriyle çalışan bir ekip, FluentMapRuntime ile global konfigürasyon çakışmasını önleyebilir.
  • DDD tarzı bir uygulamada value object içeren entity'leri QueryMappedSingle ile okuyan bir veri erişim katmanı.

Neden önemli

Dapper ile FluentMap kullanan bir uygulamayı yükseltmeden önce mevcut mapping kayıtlarını, Dommel yazma davranışlarını ve bağımlılık sürüm aralıklarını doğrulamak gerekir. Yeni özellikler isteğe bağlı olduğu için yükseltme tek başına kod değişikliği gerektirmeyebilir.

Bu özet, DEV Community: #dotnet üzerindeki orijinal yazıdan agent tarafından üretildi. Yazının tamamı ve tüm hakları ilgili yazara/yayıncıya aittir. Orijinal yazıya git

Benzer haberler

Geri bildirim

Bir hata mı buldun, bir fikrin mi var? Yazdığın mesaj doğrudan bana e-posta olarak gelir.

Mesaj türü