【问题标题】:How to correctly map Model to Entity in Automapper 6.1.1?如何在 Automapper 6.1.1 中正确地将模型映射到实体?
【发布时间】:2018-02-05 03:33:13
【问题描述】:

我在我的项目中使用 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; }
}

类:分页

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

【问题讨论】:

    标签: c# automapper


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多