我将尽力提供您需要的一切信息,以帮助我诊断我的问题。数据库记录在 Full_name 字段中包含一个值,但当我运行 GetAll 或 GetById 时,它不会返回。我缺少什么?预先感谢您!
共享项目
型号
public class AbilityScore : BaseEntity
{
public string Index { get; set; } = string.Empty;
public string Name { get; set; } = string.Empty;
public string Full_name { get; set; } = string.Empty;
public string Desc { get; set; } = string.Empty;
public string Url { get; set; } = string.Empty;
}
DTO
public record struct AbilityScoreResponse(
int Id,
string Index,
string Name,
string Full_name,
string Desc,
string Url
);
服务器项目
AbilityScore 存储库
public interface IAbilityScoreRepository
{
Task<List<AbilityScore>> Create(AbilityScore abilityScore);
Task<List<AbilityScore>?> HardDeleteById(int id);
Task<List<AbilityScore>?> GetAll();
Task<AbilityScore?> GetById(int id);
Task<List<AbilityScore>> Update(int id, AbilityScore abilityScore);
}
public class AbilityScoreRepository : IAbilityScoreRepository
{
private readonly DataContext _dataContext;
public AbilityScoreRepository(DataContext dataContext)
{
_dataContext = dataContext;
}
public async Task<List<AbilityScore>> Create(AbilityScore abilityScore)
{
_dataContext.AbilityScores.Add(abilityScore);
await _dataContext.SaveChangesAsync();
return await GetAll();
}
public async Task<List<AbilityScore>?> GetAll()
{
return await _dataContext.AbilityScores.ToListAsync();
}
public async Task<AbilityScore?> GetById(int id)
{
var dbObject = await _dataContext.AbilityScores.FirstOrDefaultAsync(x => x.Id == id);
return dbObject;
}
public async Task<List<AbilityScore>?> HardDeleteById(int id)
{
var dbObject = await _dataContext.AbilityScores.FirstOrDefaultAsync(x => x.Id == id);
if (dbObject is null)
{
return null;
}
_dataContext.AbilityScores.Remove(dbObject);
await _dataContext.SaveChangesAsync();
return await GetAll();
}
public async Task<List<AbilityScore>> Update(int id, AbilityScore abilityScore)
{
var dbObject = await _dataContext.AbilityScores.FirstOrDefaultAsync(x => x.Id == id);
if ((dbObject is null))
{
throw new EntityNotFoundException($"Ability Score with ID {id} was not found.");
}
dbObject.Index = abilityScore.Index;
dbObject.Name = abilityScore.Name;
dbObject.Full_name = abilityScore.Full_name;
dbObject.Desc = abilityScore.Desc;
dbObject.Url = abilityScore.Url;
await _dataContext.SaveChangesAsync();
return await GetAll();
}
}
能力评分服务
public interface IAbilityScoreService
{
Task<List<AbilityScoreResponse>> Create(AbilityScoreCreateRequest request);
Task<List<AbilityScoreResponse>?> HardDelete(int id);
Task<List<AbilityScoreResponse>> GetAll();
Task<AbilityScoreResponse?> GetById(int id);
Task<List<AbilityScoreResponse>?> Update(int id, AbilityScoreUpdateRequest request);
}
public class AbilityScoreService : IAbilityScoreService
{
private readonly IAbilityScoreRepository _abilityScoreRepository;
public AbilityScoreService(IAbilityScoreRepository abilityScoreRepository)
{
_abilityScoreRepository = abilityScoreRepository;
}
public async Task<List<AbilityScoreResponse>> GetAll()
{
var result = await _abilityScoreRepository.GetAll();
return result.Adapt<List<AbilityScoreResponse>>();
}
}
控制器
public class AbilityScoresController : ControllerBase
{
private readonly IAbilityScoreService _abilityScoreService;
public AbilityScoresController(IAbilityScoreService abilityScoreService)
{
_abilityScoreService = abilityScoreService;
}
[HttpGet]
public async Task<ActionResult<List<AbilityScoreResponse>>> GetAll()
{
return Ok(await _abilityScoreService.GetAll());
}
[HttpGet("{id}")]
public async Task<ActionResult<AbilityScoreResponse>> GetById(int id)
{
var dbObject = await _abilityScoreService.GetById(id);
if (dbObject is null)
{
return NotFound($"Ability Score with the given ID {id} was not found.");
}
return Ok(dbObject);
}
}
先调试: 我认为您应该首先在这些行之间添加一些日志,
dbObject.Index = abilityScore.Index;
dbObject.Name = abilityScore.Name;
dbObject.Full_name = abilityScore.Full_name;
dbObject.Desc = abilityScore.Desc;
dbObject.Url = abilityScore.Url;
//here print dboobject, and abilitScore object
await _dataContext.SaveChangesAsync();
return await GetAll();
然后看看什么没有被正确分配,你的 dbObject.full_name 应该是一个空字符串,对吗?但你的abilitScore.full_name不应该。我有一种感觉,你的 _ 给你带来了一些问题。 让我知道发生了什么!