C# dotnet核心标识映射IList<;AppUser>;到IList<;UserDto>;
我想获得具有coach角色的用户列表。我的查询处理程序如下所示:C# dotnet核心标识映射IList<;AppUser>;到IList<;UserDto>;,c#,asp.net-core,.net-core,asp.net-core-identity,C#,Asp.net Core,.net Core,Asp.net Core Identity,我想获得具有coach角色的用户列表。我的查询处理程序如下所示: namespace Application.Coach.Queries.CoachList { public class CoachListQueryHandler : IRequestHandler<CoachListQuery, CoachListVm> { private readonly CoachDataContext _context; private rea
namespace Application.Coach.Queries.CoachList
{
public class CoachListQueryHandler : IRequestHandler<CoachListQuery, CoachListVm>
{
private readonly CoachDataContext _context;
private readonly IMapper _mapper;
private readonly UserManager<AppUser> _userManager;
public CoachListQueryHandler(CoachDataContext context, IMapper mapper, UserManager<AppUser> userManager)
{
_context = context;
_mapper = mapper;
_userManager = userManager;
}
public async Task<CoachListVm> Handle(CoachListQuery request, CancellationToken cancellationToken)
{
var coaches = await _userManager.GetUsersInRoleAsync("Coach");
if (coaches == null) throw new NotFoundException(nameof(Domain.Coach.Coach));
return new CoachListVm
{
CoachList = coaches
};
}
}
}
这是我的教练:
public class CoachListDto : IMapFrom<AppUser>
{
public string Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public bool IsApproved { get; set; }
public ICollection<AppUserRole> UserRoles { get; set; }
[Column(TypeName = "decimal(18,2)")] public decimal MinHourlyRate { get; set; }
[Column(TypeName = "decimal(18,2)")] public decimal MaxHourlyRate { get; set; }
public void Mapping(Profile profile)
{
profile.CreateMap<AppUser, CoachListDto>()
.ForMember(d => d.IsApproved, opt => opt.MapFrom(s => s.Coach.IsApproved))
.ForMember(d => d.MinHourlyRate, opt => opt.MapFrom(s => s.Coach.MinHourlyRate))
.ForMember(d => d.MaxHourlyRate, opt => opt.MapFrom(s => s.Coach.MaxHourlyRate));
}
}
public-class-CoachListDto:IMapFrom
{
公共字符串Id{get;set;}
公共字符串名{get;set;}
公共字符串LastName{get;set;}
公共布尔值已批准{get;set;}
公共ICollection用户角色{get;set;}
[Column(TypeName=“decimal(18,2)”)]public decimal MinHourlyRate{get;set;}
[Column(TypeName=“decimal(18,2)”)]public decimal MaxHourlyRate{get;set;}
公共空白映射(配置文件)
{
profile.CreateMap()
.ForMember(d=>d.IsApproved,opt=>opt.MapFrom(s=>s.Coach.IsApproved))
.ForMember(d=>d.MinHourlyRate,opt=>opt.MapFrom(s=>s.Coach.MinHourlyRate))
.ForMember(d=>d.MaxHourlyRate,opt=>opt.MapFrom(s=>s.Coach.MaxHourlyRate));
}
}
我的问题是如何将Coach映射到CoachLitVm?返回之前需要添加映射,如下所示
public async Task<CoachListVm> Handle(CoachListQuery request, CancellationToken cancellationToken)
{
var appUsers = await _userManager.GetUsersInRoleAsync("Coach");
if (appUsers == null) throw new NotFoundException(nameof(Domain.Coach.Coach));
var coaches = _mapper.Map<IList<AppUser>, CoachListVm>(appUsers); //here what I mean
return coaches;
}
公共异步任务句柄(CoachListQuery请求、CancellationToken CancellationToken)
{
var appUsers=await_userManager.GetUsersInRoleAsync(“Coach”);
if(appUsers==null)抛出newnotfoundexception(nameof(Domain.Coach.Coach));
var coach=\u mapper.Map(appUsers);//我的意思是
返回车厢;
}
是否可以使用\u mapper.Map
方法?另外,教练的类型是什么?因为你的问题是unclear@PavelAnikhouskicoach是具有coach
角色的应用程序用户。
public async Task<CoachListVm> Handle(CoachListQuery request, CancellationToken cancellationToken)
{
var appUsers = await _userManager.GetUsersInRoleAsync("Coach");
if (appUsers == null) throw new NotFoundException(nameof(Domain.Coach.Coach));
var coaches = _mapper.Map<IList<AppUser>, CoachListVm>(appUsers); //here what I mean
return coaches;
}