Mapear Objectos com AutoMapper





AutoMapper é uma biblioteca de mapeamento entre objectos e pode ser usada para mapear mesmo objectos de tipos diferentes.

Exemplo de tipos para mapeamento
Tipo origem
public partial class GamaO
    {
        public int Id { get; set; } // id (Primary key)
        public string Ab { get; set; } // ab (length: 2)
        public int IdMarca { get; set; } // idMarca
        public string Nome { get; set; } // Nome (length: 45)
        public string NomeTipo { get; set; } // NomeTipo (length: 20)
        public int? IdEixo { get; set; } // IdEixo

    }

Tipo destino
 public class GamaD
    {
        public string Nome { get; set; }
        public string Abreviatura { get; set; }
        public string Tipo { get; set; }
        public virtual Marca Marca { get; set; }
    }

 public class Marca
    {
        public string IdERP { get; set; }
        public string Nome { get; set; }
    }


Instalação do AutoMapper no VS
PM> Install-Package AutoMapper


Configuração do AutoMapper
 public MapperConfiguration Config { get; set; }
Config = new MapperConfiguration(cfg =>
            {
                // Configure AutoMapper
                cfg.CreateMap<GamaO, GamaD>()
                    .ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.GuidCrm))
                    .ForMember(dest => dest.IdERP, opt => opt.MapFrom(src => src.Id))
                    .ForMember(dest => dest.Nome, opt => opt.MapFrom(src => src.Nome))
                    .ForMember(dest => dest.Abreviatura, opt => opt.MapFrom(src => src.Ab))
                    .ForMember(dest => dest.Tipo, opt => opt.MapFrom(src => src.NomeTipo))
                    .ForPath(dest => dest.Marca.IdERP, opt => opt.MapFrom(src => src.IdMarca))
                    .ForPath(dest => dest.Marca.Nome, opt => opt.Ignore())
                    .ReverseMap();

            });

Mapear com AutoMapper
 // Perform mapping
            var mapper = Config.CreateMapper();
            GamaD entityD = mapper.Map(entityGamaO);


Reverter mapeamento com AutoMapper
 // Perform reverse mapping
            GamaD entityD = new GamaD();
            mapper.Map(entityGamaO, entityGamaD);



Referências: ASP.Net MVC – AutoMapper e View Models, Para que serve o AutoMapper?






fonte: InfoWorld

Licença CC BY-SA 4.0 Silvia Pinhão Lopes, 18.4.18
Print Friendly and PDF

Sem comentários:

Com tecnologia do Blogger.