【发布时间】:2022-08-03 17:00:48
【问题描述】:
到目前为止,get/delete/create 有效,但是当我尝试我的更新方法时它不起作用。奇怪的是api正在循环。任何帮助,将不胜感激
我的 api 看起来如何:
[
{
\"KlantId\": 5,
\"Mailaddres\": \"ToBeEdited\",
\"Wachtwoord\": \"ToBeEdited\",
\"Klantvoornaam\": \"ToBeEdited\",
\"Tussenvoegsel\": \"ToBeEdited\",
\"Klantachternaam\": \"ToBeEdited\",
\"Bedrijfsnaam\": \"ToBeEdited\",
\"Telefoonnummer\": \"500\"
}
]
邮递员请求
IRepository.cs:
public interface IRepository<T>
{
Task<List<T>> GetData();
Task<T> GetDataById(int id);
Task<T> InsertData(T service);
Task<T> UpdateData(T service);
Task<bool> DeleteData(T service);
}
KlantRepository.cs:
public class KlantRepository: IRepository<KlantModel>
{
private readonly DataContext _context;
public async Task<KlantModel> UpdateData(KlantModel klant)
{
Console.WriteLine(\"Update method invoked\");
_context.Update(klant).Property(x => x.KlantId).IsModified = false;
_context.SaveChanges();
await UpdateData(klant);
return klant;
}
}
KlantController.cs:
[ApiController]
[Route(\"api/Klant\")]
[Produces(\"application/json\")]
public class KlantController : ControllerBase
{
private readonly IRepository<KlantModel> _repo;
private readonly IMapper _mapper;
public KlantController(IRepository<KlantModel> repo, IMapper mapper)
{
_repo = repo;
_mapper = mapper;
}
[HttpPut(\"{id}\")]
public async Task<ActionResult<KlantModel>> UpdateService( int id, KlantModel klant)
{
Console.WriteLine(\"Update Service Method Invoked\");
Console.WriteLine(\"KlantId: \" + klant.KlantId + \" Klant-Bedrijfsnaam: \" + klant.Bedrijfsnaam);
try
{
if (klant is null)
{
return BadRequest(\"klant object is null\");
}
if (!ModelState.IsValid)
{
return BadRequest(\"Invalid model object\");
}
var klanten = await _repo.GetDataById(id);
Console.WriteLine(\"employeeToUpdate-Id: \" + klanten.KlantId + \" employeeToUpdate-Bedrijfsnaam: \" + klanten.Bedrijfsnaam );
if (klanten is null)
{
return NotFound();
}
_mapper.Map(klant, klanten);
await _repo.UpdateData(klanten);
return NoContent();
}
catch (Exception ex)
{
return StatusCode(500, $\"Internal server error: {ex.Message}\");
}
}
第 1 部分来自 KlantController.cs
A 应该是来自 Postman 的信息
B 应该是来自数据库的信息