更新時にEntity Framework(Core)がオブジェクトを削除するという問題があります。私はこれがAutomapperに関連していると思います(DTOリソースをオブジェクトにマップする)。私は他のオブジェクトをこのオブジェクトとまったく同じようにマップし、更新はうまく動作します。更新時にオブジェクトを削除するEntity Framework
public async Task<IActionResult> UpdateFeedback(Guid Id, [FromBody] FeedbackResource feedbackResource)
{
if (!ModelState.IsValid)
return BadRequest(ModelState);
//removing or else get a tracking error with EF
feedbackResource.FeedbackType = null;
var feedback = await feedbackRepository.GetFeedback(Id);
if (feedback == null)
return NotFound();
//if I use this line to map, EF will delete the object upon save.
mapper.Map<FeedbackResource, Feedback>(feedbackResource, feedback);
// if I map manually, i get no error
//feedback.Title = feedbackResource.Title;
//feedback.Details = feedbackResource.Details;
//feedback.IsGoodFeedback = feedbackResource.IsGoodFeedback;
//feedback.IsReviewed = feedbackResource.IsReviewed;
//feedback.FeedbackTypeId = feedbackResource.FeedbackTypeId;
//if(feedbackResource.IsReviewed){
// feedback.ReviewDate = DateTime.Now;
// feedback.ReviewedBy = UserId;
//} else {
// feedback.ReviewDate = null;
// feedback.ReviewedBy = null;
//}
await uow.CompleteAsync();
return Accepted(feedback);
}
私はここで何をトラブルシューティングすればいいのか分からず、どのGoogle検索でもこの問題を見ることはできません。
コードにブレークポイントを追加して、マッピング操作の結果を確認し、FeedbackResourceのすべてのプロパティがバインドされ、期待どおりに表示されるようにする必要があります。 –