首页 文章

在AutoMapper配置文件中登录用户

提问于
浏览
0

我有asp.net core 2.0 web api项目 . 每个Domain类都继承BaseEntity类:

public class BaseEntity
{
    public Guid Id { get; set; }

    public DateTime CreatedOn { get; set; }

    public Guid CreatedBy { get; set; }

    public DateTime ModifiedOn { get; set; }

    public Guid ModifiedBy { get; set; }
}

为了将视图模型转换为DTO-s,我使用AutoMapper .

我创建了两个配置文件,一个用于ViewModel到DTO,另一个用于DTO到ViewModel .

在我将ViewModels映射到DTO的配置文件中,我需要 BaseEntity 个字段

public Guid CreatedBy { get; set; }

    public Guid ModifiedBy { get; set; }

从授权用户映射 . 我已经设置了身份验证,只需要从AutoMapper配置文件类访问授权用户对象 .

有什么方法可以做到这一点吗?

1 回答

  • 0

    您必须在AutoMapper中使用自定义值解析器才能将您的用户对象放入上下文中 .

    配置配置

    Mapper.CreateMap<ViewModel, Dto>()
        .ForMember(d => d.CreatedBy, opt => opt.ResolveUsing((src, dest, destMember, res) => res.Context.Options.Items["CreatedBy"]));
    

    调用Mapper时

    Mapper.Map<ViewModel, Dto>(src, opt => opt.Items["CreatedBy"] = this.createdByUserObject);
    

相关问题