如何在Automapper 6.1.1中正确地将模型映射到实体?

问题描述:

我在我的项目中使用automapper,直到今天是它的非常旧的版本,我决定将它更新到最新版本。如何在Automapper 6.1.1中正确地将模型映射到实体?

在执行我的项目和测试一些API,一些工作正常(无关系),但其他人出现以下错误:

Error mapping types.

Mapping types: PaginaModelCadastro -> Pagina Identidade.App.Models.PaginaModelCadastro -> Identidade.Domain.Entities.Pagina

Type Map configuration: PaginaModelCadastro -> Pagina Identidade.App.Models.PaginaModelCadastro -> Identidade.Domain.Entities.Pagina Property: IdDominio

以下是引用错误的所有类和映射:

** Automapper配置类**从模型

public static void Configure() 
    { 
     Mapper.Initialize(map => 
     { 
      map.AddProfile<EntityToModelMapping>(); 
      map.AddProfile<ModelToEntityMapping>(); 
     }); 
    } 

映射到实体

 CreateMap<PaginaModelCadastro, Pagina>() 
     .ForMember(dest => dest.IdDominio, src => src.MapFrom(m => new Dominio() { IdDominio = m.IdDominio })); 

类别:多米尼

public class Dominio 
{ 
    public virtual int IdDominio { get; set; } 
    public virtual string Descricao { get; set; } 

    public virtual ICollection<Pagina> Paginas { get; set; } 
} 

类别:Pagina

public class Pagina 
{ 
    public virtual int IdPagina { get; set; } 
    public virtual string Descricao { get; set; } 
    public virtual int IdDominio { get; set; } 

    public virtual Dominio Dominio { get; set; } 
    public virtual ICollection<Permissao> Permissoes { get; set; } 
} 

没有办法IdDominio和多米尼之间进行映射。您必须删除您拥有的ForMember。也许你的意思是

CreateMap<PaginaModelCadastro, Pagina>() 
    .ForMember(dest => dest.Dominio, src => src.MapFrom(m => new Dominio() { IdDominio = m.IdDominio })); 
+0

非常感谢卢西恩!成功了! –