如何在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 }));
非常感谢卢西恩!成功了! –