【发布时间】:2019-12-03 13:13:11
【问题描述】:
我得到了一个User 和一个UserListDto。我正在尝试将我的User 映射到UserListDto。
但是我得到了一个,
缺少类型映射配置或不支持的映射。
当我调用 GetUsers() 而不是 GetUser(int id) 时它可以工作
用户控制器:
[HttpGet]
public async Task<IActionResult> GetUsers()
{
var users = await _repo.GetUsers();
var usersToReturn = _mapper.Map<IEnumerable<UserForListDto>>(users);
return Ok(usersToReturn);
}
[HttpGet("{id}", Name = "GetUser")]
public IActionResult GetUser(int id)
{
var user = _repo.GetUser(id, false);
var userToReturn = _mapper.Map<UserForListDto>(user);
return Ok(userToReturn);
}
AutoMapperProfiles:
public class AutoMapperProfiles : Profile
{
public AutoMapperProfiles()
{
CreateMap<User, UserForListDto>();
CreateMap<User, UserForDetailedDto>();
CreateMap<UserForRegisterDto, User>();
CreateMap<HighScoreDto, HighScore>()
.ForMember(h=>h.TimeBetweenClicksAverage,
m=>m.MapFrom(u=>u.TimeBetweenClicksArray.Average()));
CreateMap<HighScore,HighScoreForReturnDto>();
}
}
用户:
public class User : IdentityUser<int>
{
public virtual ICollection<UserRole> UserRoles { get; set; }
public virtual ICollection<HighScore> HighScores { get; set; }
}
UserForDetailedDto:
public class UserForDetailedDto
{
public int Id { get; set; }
public string Username { get; set; }
}
【问题讨论】:
-
查看完整的错误信息。它会准确地告诉您您缺少什么地图。
-
@LucianBargaoanu 这里是错误codepile.net/pile/eLv3JbAk
标签: asp.net-core .net-core automapper