如何使用Automapper映射两个LIST属性

时间:2018-09-11 17:38:45

标签: c# automapper

我有PessoaViewModel和RegisterNewPessoaCommand类,需要将PessoaDocumentosViewModel属性映射到List PessoaContatos列表,一个是PessoaViewModel列表,另一个是PessoaContact列表,并且都具有相同的字段。

所有其他属性均已映射并正常工作。只有在我用“?”符号表示的地方如我上面所述,必须进行映射。有人知道如何帮助我吗?

public class RegisterNewPessoaCommand 
{
    public RegisterNewPessoaCommand(
               PessoaNatureza pessoaNatureza, 
               PessoaFisica pessoaFisica, 
               PessoaJuridica pessoaJuridica, 
               PessoaGenerico pessoaGenerico, 
               List<PessoaContato> pessoasContatos) 
    {
        PessoaNatureza = pessoaNatureza;
        PessoaFisica = pessoaFisica;
        PessoaJuridica = pessoaJuridica;
        PessoaGenerico = pessoaGenerico;
        PessoasContatos = pessoasContatos;
    }
}

public class PessoaViewModel 
{
    public List <PessoaDocumentoViewModel> PessoasDocumentosViewModel {get; set; }
}


CreateMap<PessoaViewModel, RegisterNewPessoaCommand>()
    .ConstructUsing(p => new RegisterNewPessoaCommand(
        p.PessoaNatureza,
       (p.PessoaFisicaViewModel != null ? new Domain.Models.PessoaFisica(
           p.PessoaFisicaViewModel.NomeCompleto,
           p.PessoaFisicaViewModel.Apelido,
           p.PessoaFisicaViewModel.DataNascimento,
           p.PessoaFisicaViewModel.Sexo,
           p.PessoaFisicaViewModel.EstadoCivil,
           p.PessoaFisicaViewModel.PessoaFisicaOrigem) : null
        ),
       (p.PessoaJuridicaViewModel != null ? new Domain.Models.PessoaJuridica(
           p.PessoaJuridicaViewModel.RazaoSocial,
           p.PessoaJuridicaViewModel.NomeFantasia,
           p.PessoaJuridicaViewModel.DataAbertura,
           p.PessoaJuridicaViewModel.RegimeTributario,
           p.PessoaJuridicaViewModel.PessoaJuridicaOrigem) : null

        ),
        (p.PessoaGenericoViewModel != null ? new Domain.Models.PessoaGenerico(
           p.PessoaGenericoViewModel.PessoaTipo,
           p.PessoaGenericoViewModel.CodigoInterno,
           p.PessoaGenericoViewModel.PessoaFilialId) : null
        ), 
        // List<PessoaContatoViewModel> to List<PessoaContato>
        (p.PessoasContatosViewModel)

0 个答案:

没有答案