AutoMapper Kullanımı

Merhaba, bu yazımda ViewModel ile Entity eşleştirmesini başarılı bir şekilde yapan AutoMapper kütüphanesini inceleyeceğiz.

Kısaca ViewModel’den bahsetmek gerekirse

Sadece ekranda gözükecek yada işimize yarayan propertylerden oluşan bir sınıf…

Automapper bu noktada entitiy ile viewmodel arasındaki transferi gerçekleştiriyor. Bir örnek üzerinden nasıl çalıştığını anlayalım.

Kitap ve Yazar adında iki tane entity’imiz olsun

Kitap ekleme sayfasında Book entity’sinin Id ve AuthorId özelliklerine gerek yok ve ekleyeceğimiz kitabın yazar adı gerekli Bunun için bir ViewModel oluşturalım

ViewModel oluştururken SOLID prensiplerine bağlı kalalım yukarıda oluşturduğumuz ViewModel’i sadece Home Controller’daki Index Action’ında kullanalım.

Controller kısmında mapper olmadan şöyle yapıyorduk:

Mapper yapmak için AutoMapper(sürümü 10) ve AutoFacMvc5 paketlerini nuget üzerinden kuralım

AutoMapper 10’da; api’ya statik üzerinden erişimi kaldırdı dependecy injection kullanarak mapper’ı kullanacağız.

MapperProfile adında bir sınıf oluşturup Profile’dan miras alalım

CreateMap içine iki adet parametre alıyor <TSource,TDestination> yani ilkine verilerimizin geldiği türü diğerini de dönüşüm yapmak istediğimiz türü yazacağız. Bu kısımda isimleri her iki türde de aynı olanları otomatik eşleştirip aktaracaktır isim farklılığı olanlar için ise ForMember extensionını kullanacağız.

Config yapıp globalasax.cs’de de register yapmalıyız. Bunun için ContainerConfig adında statik bir sınıf oluşturalım.

Globalasax.cs:

Bu işlemleri bitirdikten sonra sadece uygulamak kalıyor.

Şu an daha temiz bir kod ve iyi bir performans elde ettik.

You may also like...

Leave a Reply

Your email address will not be published.

English