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

时间:2017-08-27 20:52:49

标签: c# automapper

我在我的项目中使用了自动播放器,直到今天它已经使用了它的旧版本,我决定将它更新到最新版本。

执行我的项目并测试某​​些api时,有些工作正常(没有关系),但其他人出现了以下错误:

  

映射类型时出错。

     

映射类型:   PaginaModelCadastro - > Pagina   Identidade.App.Models.PaginaModelCadastro - > Identidade.Domain.Entities.Pagina

     

类型地图配置:   PaginaModelCadastro - > Pagina   Identidade.App.Models.PaginaModelCadastro - > Identidade.Domain.Entities.Pagina   属性:   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 }));

上课:Dominio

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; }
}

1 个答案:

答案 0 :(得分:0)

IdDominio和Dominio之间无法映射。你必须删除你的ForMember。也许你的意思是

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