Asp.Net Mvc’de AutoMapper

Selamlar,
Bu makalede Asp.Net Mvc’de AutoMapper ile mapping işlemleri hakkında konuşuyor olacağız.

Peki Nedir Bu AutoMapper ?


AutoMapper,Projelerimiz içerisinde tasarladığımız Dto,ViewModel gibi nesnelerimiz ile veritabanı tablolarımızı temsil eden entitylerimizi merkezi bir noktadan daha performanslı bir şekilde eşleştirmemize olanak sağlayan bir kütüphanedir.Tüm bu getirilerinin yanında bize tabiki ciddi birzaman kazandırdığı da bir gerçektir. Çok geniş bir veritabanı tablonuz olduğunu düşünün.Verinin update edilmesi aşamasında tüm propertyleri manuel olarak tek tek eşleştirmeniz gerekecek.Birde bunu bir çok kez yerde yaptığınızda ciddi bir zaman ve performans kaybı olacaktır.

İşin daha kötüsü veritabanına yeni bir alan eklediğinde ise tüm bu eşleştirmelerin hepsini tek tek düzeltmeniz yada eklemeniz gerekecek.AutoMapper ile veritabanında olan bir değişikliği tasarladığınız nesye’de eklemeniz yeterli olacaktır. Kullanılan tüm methodlarda artık mapping işlemini otomatik bir şekilde gerçekleştiriyor hale gelmiş oluyor. Bakın herkes daha mutlu şuan 🙂
O zaman bir Asp.Net Mvc projesi oluşturalım ve AutoMapper‘ın nimetlerinden yararlanmaya başlayalım.

Nuget Package Manager AutoMapper Kurulumu


NOT:AutoMapper kurulumunu yaparken ben 6.1.0 sürümünü kurdum.Siz isterseniz daha üst bir sürüm kurabilirsiniz.IMapper interface’i üzerinden Dependency İnjection ile bir kullanımda tercih edilebilir.

Profile Tanımlama

MappingProfile.cs:Profile sınıfında inherit bu sınıfım benim hangi nesnenin hangi nesneye map edileceğini belirlediğim sınıfım olacak.Constructor içinde CreateMap metodunu kullanarak ProductDto nesnesini Products nesnesine map etmesini söylüyorum.Daha sonra bu sınıfımı Global.asax için register ediyor olacağım.
Profile sınıfım hazır. Sıra geldi bir Action içinde AutoMapperkullanımına.

ProductController.cs:Paramtere olarak gelen ProductDto tipindeki productDto nesnesini Products nesnesine Mapper sınıfının içerisinde hazır olarak gelen Map metodunu kullanarak map etmesini söylüyorum.

NOT:Map metodunu çeşitli kullanımları mevcuttur. TSource ve TDestination olarak iki parametre alan bu metodun isterseniz diğer kullanımlarını da tercih edebilirsiniz.

Global.asax

  • Configure:Kendi yazdığımız ve profile sınıfımızı register etmek için kullanacağımız metodumuz.
  • Mapper.Initialize:AutoMapper içerisinde hazır gelen bu metod içerisine lamda ifadesi yazarak hazır metodlarına ulaşabiliyoruz.Biz burada AddProfile metodunu kullanıyor olacağız.
  • AddProfile:Tanımlamış olduğum Profile sınıfımı parametre olarak gönderiyorum.

  • Son olarak Configure();metodunu Application_Start içerisinde tanıtıyorum ve kodlarımı tamamlıyorum.

TEST:Yukarıdaki görsel üzerinden gidecek olursak ProductDto türünde gelen parametremizi Mapper.Map metodu ile Products nesnesine map ediyoruz.Dönen değeri entity değişkenimize atıyoruz ve context.Add metodunu kullanarak ekleme işlemini gerçekleştiriyoruz.

SONUÇ:Products tablomuza baktığımızda ekleme işlemimiz başarılı şekilde gerçekleştirilmiş

Asp.Net Mvc’de AutoMapper kullanımı hakkında benim aktaracaklarım bu kadar.Temel seviyede AutoMapper kütüphanesini nasıl kullanırız ona değinmeye çalıştım umarım faydalı olur.Bir başka makalede görüşmek dileğiyle Hoşçakalın… 🙂

BUNLAR DA HOŞUNUZA GİDEBİLİR...

CEVAPLAR

  1. 3 Ekim 2020

    […] için AutoMapper kütüphanesi kullanılmıştır. AutoMapper hakkında bilgi edinmek isterseniz buradaki linkten AutoMapper ile ilgili yazıma […]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir