Mapping Nedir ve ne için kullanılır?

Mapping ,bir nesneden başka bir nesneye dönüştürmedir. bakarsak veri transferi zamanlarında yapılırz. ama çoğunlukla DTO ile birlikte kullanımını göruruz ,Yani kısaca DTO ile entity arasındakı eşleşmeyi sağlar Entity verilerini DTO'ya veya DTO nesnelerini Entitye taşımak içindir. Bazen manual bazen de automapper kullanılır.

NOT: Bazen DTO ile entitydeki verilerin aynı olduğunu görursunuz onun sebebi:

Entity Veritabanı modeli
DTO Dış dünya (API,UI) gönderilen veri modeli


public class Note
{
    public int Id { get; set; }
    public string Title { get; set; }
    public string Content { get; set; }
}

DTO'su


public class CreateNoteDto
{
    public string Title { get; set; }
    public string Content { get; set; }
}

Mapping işlemi:


var dto = new CreateNoteDto
{
    Title = "C# Öğreniyorum",
    Content = "Bugün mapping konusunu çalıştım."
};

var note = new Note
{
    Title = dto.Title,
    Content = dto.Content
};

AutoMapper ile Mapping


using AutoMapper;

public class NoteProfile : Profile
{
    public NoteProfile()
    {
        CreateMap<CreateNoteDto, Note>();
    }
}
    

şimdi burada AutoMapper kullanarak mapping işlemi yaptık bunu. Buradaki amaç CreatNoteDto ile Note entitisin eşlemek .

AutoMapper ile Mapping Kullanımı

using AutoMapper;

var config = new MapperConfiguration(cfg =>
{
    cfg.AddProfile<NoteProfile>();
});

var mapper = config.CreateMapper();

Note note = mapper.Map<Note>(dto);