Asp.net core 在AutoMapper配置文件中登录用户
我有asp.NETCore2.0WebAPI项目。 每个域类都继承BaseEntity类:Asp.net core 在AutoMapper配置文件中登录用户,asp.net-core,automapper,asp.net-core-webapi,Asp.net Core,Automapper,Asp.net Core Webapi,我有asp.NETCore2.0WebAPI项目。 每个域类都继承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 G
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 profile类访问授权用户对象
有什么方法可以做到这一点吗?您必须使用AutoMapper中的自定义值解析程序将您的用户对象放入上下文中 配置文件配置
Mapper.CreateMap<ViewModel, Dto>()
.ForMember(d => d.CreatedBy, opt => opt.ResolveUsing((src, dest, destMember, res) => res.Context.Options.Items["CreatedBy"]));
Mapper.CreateMap()
.FormMember(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);
Mapper.Map(src,opt=>opt.Items[“CreatedBy”]=this.createdByUserObject);
请参阅和。