This Package allows you to perform async operation for mapping.
PM> Install-Package Mapster.Async
Setup
Use AfterMappingAsync to setup async operation:
config.NewConfig<Poco, Dto>()
.AfterMappingAsync(async (poco, dto) =>
{
var userManager = MapContext.Current.GetService<UserManager>();
var user = await userManager.FindByIdAsync(poco.UserId);
dto.UserName = user.Name;
});
Mapping
Then map asynchronously with AdaptToTypeAsync.
var dto = await poco.BuildAdapter()
.AdaptToTypeAsync<Dto>();
Or like this, if you use mapper instance:
var dto = await _mapper.From(poco)
.AdaptToTypeAsync<Dto>();