AutoMapper 類:
namespace ef_practice
{
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 類:
namespace ef_practice.Dtos.User
{
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 但回應中不包括用戶物件。我不確定這里出了什么問題。任何人都可以幫助我解決問題。
uj5u.com熱心網友回復:
在GetCharacterDto類中,User是欄位而不是屬性。
通過添加 getter 和 setter 將其更改為屬性。
public class GetCharacterDto
{
...
public GetUserDto User { get; set; } = new GetUserDto();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/471016.html
