none
erro com o automapper RRS feed

  • Pergunta

  • Ola pessoal!

    estou com dificuldades de fazer o mapeamento para classes filha, utilizando o automapper, e gera uma exception, informando que num da suporte.

    O erro acontece quando eu converto de viewModel para model. Alguem ja conseguiu resolver esse tipo de problema?

    public class Cidade
    {
        public Int64 CidadeId { get; set; }
        public String CidadeNome { get; set; }
        public Int64 EstadoId { get; set; }
        public virtual Estado Estado { get; set; }
    }
    
    public class Cliente
    {
        public Int64 ClienteId { get; set; }
        public String Nome { get; set; }
        public String Email { get; set; }
        public String Cpf { get; set; }
        public String Rg { get; set; }
        public String TelFixo { get; set; }
        public String Celular { get; set; }
        public Int64 EnderecoId { get; set; }
        public virtual Endereco Endereco { get; set; }
    }
    //classe viewModel
    public class ClienteViewModel
    {
        [Key]
        public Int64 ClienteId { get; set; }
    
        [Required(ErrorMessage = "Nome do cliente é obrigatório ")]
        [MaxLength(150, ErrorMessage = "Máximo {0} caracteres")]
        public String Nome { get; set; }
    
        [Required(ErrorMessage = "CPF é obrigatório")]
        [MaxLength(12)]
        public String Cpf { get; set; }
        [MaxLength(11)]
        public String RG { get; set; }
    
        [EmailAddress(ErrorMessage = "Preencha um E-mail válido")]
        [DisplayName("E-mail")]
        public String Email { get; set; }
        public String Telefone { get; set; }
        public String Celular { get; set; }
        public Int64 EnderecoId { get; set; }
        public Int64 EstadoId { get; set; }
        public Int64 CidadeId { get; set; }
        public String Rua { get; set; }
        public String Cep { get; set; }
        [DisplayName("Cidade")]
        public String CidadeNome { get; set; }
        public String Bairro { get; set; }
        public String UF { get; set; }
        public String Numero { get; set; }
        public String Complemento { get; set; }
    
    }

    public class ViewModelToDomainMappingProfile : Profile
    {
        public override string ProfileName
        {
            get { return "ViewModelToDomainMappings"; }
        }
    
        protected override void Configure()
        {
            Mapper.CreateMap<ClienteViewModel, Cliente>();
            Mapper.CreateMap<ClienteViewModel, Endereco>()
            .ForMember(dest => dest.Rua, m => m.MapFrom(a => a.Rua))
            .ForMember(dest => dest.Numero, m => m.MapFrom(a => a.Numero))
            .ForMember(dest => dest.CEP, m => m.MapFrom(a => a.Cep))
            .ForMember(dest => dest.Bairro, m => m.MapFrom(a => a.Bairro))
            .ForMember(dest => dest.CidadeId, m => m.MapFrom(a => a.CidadeId))
            .ForMember(dest => dest.Cidade, m => m.MapFrom(a => Mapper.Map<ClienteViewModel, Cidade>(a)))
            .ForMember(dest => dest.EstadoId, m => m.MapFrom(a => a.EstadoId))
            .ForMember(dest => dest.Estado, m => m.MapFrom(a => Mapper.Map<ClienteViewModel, Estado>(a)));           
    
       }
    }


    Ricardo Soares

    sexta-feira, 11 de novembro de 2016 13:10

Todas as Respostas