【问题标题】:AutoMapper - Unable to include GetUserDto in responseAutoMapper - 无法在响应中包含 GetUserDto
【发布时间】:2022-11-06 10:12:40
【问题描述】:

AutoMapper 简介:

public class AutoMapperProfile : Profile
{
    public AutoMapperProfile()
    {
        CreateMap<Character, GetCharacterDto>();
        CreateMap<AddCharacterDto, Character>();
        CreateMap<Weapon, GetWeaponDto>();
        CreateMap<User, GetUserDto>();
    }
}

服务层:

public async Task<ServiceResponse<GetCharacterDto>> GetSingle(int id)
{
    var serviceResponse = new ServiceResponse<GetCharacterDto>();
    var dbCharacter = await _context.Characters
    .Include(c => c.User)
    .FirstOrDefaultAsync(ele => ele.Id == id && ele.User.Id == 1);
    serviceResponse.Data = _mapper.Map<GetCharacterDto>(dbCharacter);
    return serviceResponse;
}

GetCharacterDto 班级:

public class GetCharacterDto
{
    public int Id { get; set; }
    public string Name { get; set; } = "Frodo";
    public int HitPoints { get; set; } = 100;
    public int Strength { get; set; } = 10;
    public int Defense { get; set; } = 10;
    public int Intelligence { get; set; } = 10;
    public RpgClass Class { get; set; } = RpgClass.Knight;
    public GetUserDto User = new GetUserDto();
}

GetUserDto 班级:

public class GetUserDto
{
    public int Id { get; set; }
    public string Username { get; set; } = "";
}

回复:

{
  "data": {
    "id": 2,
    "name": "string",
    "hitPoints": 0,
    "strength": 10,
    "defense": 0,
    "intelligence": 0,
    "class": 0
  },
  "success": true,
  "message": ""
}

响应数据是模型GetCharacterDto,它具有GetUserDto,但在响应中,不包括User 对象。我不确定这里出了什么问题。谁能帮我解决问题?

【问题讨论】:

    标签: c# entity-framework automapper


    【解决方案1】:

    GetCharacterDto 类中,User 是一个字段,而不是一个属性。

    通过添加 getter 和 setter 将其更改为属性。

    public class GetCharacterDto
    {
        ...
    
        public GetUserDto User { get; set; } = new GetUserDto();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-07
      • 1970-01-01
      • 1970-01-01
      • 2021-10-26
      • 2021-11-14
      • 1970-01-01
      • 2013-10-09
      相关资源
      最近更新 更多