AutoMapper语言 - 无法在 IdentityUser 子类与其对应的 DTO 之间进行映射



我正在做一个 asp.net 核心和身份的项目,我正在尝试使用自动映射器在 IdentityUser 子类与其对应的 DTO 之间创建映射配置我已经对其他类进行了类似的配置,它工作正常,但是对于 IdentityUser 子类,它的行为有所不同:

这是我的身份用户子类:

public partial class Collaborateur : IdentityUser
{
    public Collaborateur() : base()
    {
        this.Activites = new HashSet<ActiviteCollaborateur>();
        this.ActeursAvantVente = new HashSet<ActeurAvv>();
    }
    public string Nom { get; set; }
    public string Prenom { get; set; }
    public string Telephone { get; set; }
    public Nullable<long> Matricule { get; set; }
    public string Structure { get; set; }
    public string Login { get; set; }
    public RoleEnum Role { get; set; }
    public virtual ICollection<ActiviteCollaborateur> Activites { get; set; }
    public virtual ICollection<ActeurAvv> ActeursAvantVente { get; set; }
    public virtual Agence Agence { get; set; }
    public DateTime CreatedAt { get; set; }
    public DateTime LastModified { get; set; }
}

其对应的 DTO :

public class CollaborateurDTO : BaseDTO
{
    public string Nom { get; set; }
    public string Prenom { get; set; }
    public string Telephone { get; set; }
    public Nullable<long> Matricule { get; set; }
    public string Structure { get; set; }
    public string Login { get; set; }
    public RoleEnum Role { get; set; }
}

协作配置文件配置类:

public class CollaborateurProfile : Profile
{
    CollaborateurProfile()
    {
        CreateMap<Collaborateur, CollaborateurDTO>().ReverseMap();
        CreateMap<Collaborateur, Collaborateur>()
            .ForMember(x => x.Id, opt => opt.Ignore())
            .ForMember(x => x.CreatedAt, opt => opt.Ignore())
            .ForMember(x => x.LastModified, opts => opts.MapFrom(src => DateTime.UtcNow));
    }
}

和启动.cs :

services.AddAutoMapper();

它停在这条线上

Missing MethodException 未由用户代码处理System.Private.CoreLib.ni 中发生了类型为"System.MissingMethodException"的异常.dll但未在用户代码中处理

我错误地在评论中链接的问题中回答了这个问题(https://stackoverflow.com/a/46567611/7131186(

这是我的答案:

就我而言(似乎这也是您的情况(,这是一个复制/粘贴问题。我不知何故最终为我的映射配置文件提供了一个 PRIVATE 构造函数:

using AutoMapper;
namespace Your.Namespace
{
    public class MappingProfile : Profile
    {
        MappingProfile()
        {
            CreateMap<Animal, AnimalDto>();
        }
    }
}

(请注意CTOR前面缺少的"公众"(

它编译得很好,但是当AutoMapper尝试实例化配置文件时,它(当然!(找不到构造函数!

相关内容

  • 没有找到相关文章

最新更新