Giriş
AutoMapper biribiri ile ilgisi olmayan nesneler arasında dönüşüm yapabilir.
Map Sınıfı
CreateMap metodu
İmzası şöyle.
Şöyle yaparız.
Bu metodu direkt kullanmak yerine şöyle de yapılabilir.
İlk parametre hedef nesnedeki alandır, ikinci parametre kaynak nesnedeki alandır.
Örnek
Şöyle yaparız.
Elimizde iki sınıf olsun.
AutoMapper biribiri ile ilgisi olmayan nesneler arasında dönüşüm yapabilir.
Map Sınıfı
CreateMap metodu
İmzası şöyle.
Mapper.CreateMap<SourceClass, DestinationClass>();
Açıklaması şöyle. Yani önce CreateMap() çağrısı ile dönüşümün nasıl olacağı tanımlanır, daha sonra Map() çağrısı ile iki nesne arasında dönüşüm yapılır.All mapping definitions for AutoMapper are created using the CreateMap method.Bu metod eski kodlarda kullanılıyor. Açıklaması şöyle.
Mapper.CreateMap<TSource,TDestination> is obsolete: Dynamically creating maps will be removed in 5.0. Use a MapperConfiguration instance and store statically as needed, or Mapper.Initialize(). Use CreateMapper to create a mapper instance.Örnek
Şöyle yaparız.
Mapper.CreateMap<Person, PersonViewModel>(person)
.ForMember(dest => dest.BirthDate,
opt => opt.ResolveUsing(src => src.BirthDate.ToString(AppConstants.DefaultDateFormat)));
ÖrnekBu metodu direkt kullanmak yerine şöyle de yapılabilir.
var config = new MapperConfiguration(cfg => {
cfg.CreateMap<User, UserDto>();
});
Daha sonra şöyle yaparız.IMapper map = cfg.CreateMapper();
ForMember metoduİlk parametre hedef nesnedeki alandır, ikinci parametre kaynak nesnedeki alandır.
Örnek
Şöyle yaparız.
Mapper.Map<User, UsersViewItem>()
.ForMember(vm=>vm.UserName, m=>m.MapFrom(u=>(u.UserName != null)
? u.UserName
: "User" + u.ID.ToString()));
Map metoduElimizde iki sınıf olsun.
public class Employee
{
public string Name { get; set; }
public string Email { get; set; }
}
public class EmployeeViewItem
{
public string Name { get; set; }
public string Email { get; set; }
}
Şöyle yaparız.EmployeeViewItem viewItem = Mapper.Map<Employee, EmployeeViewItem>(employee);
Hiç yorum yok:
Yorum Gönder