Я использую ASP.Net Core. У меня есть DTO с 3 моделями таблиц из DB Scaffolding.
public class StudentDTO
{
public int StudentId { get; set; }
public Student StudentInfo { get; set; }
public Address StudentAddressDetails { get; set; }
public Extracurricular ExActivities { get; set; }
}
Я могу исправлять модели с помощью JsonPatchDocument с отдельным маршрутом, например следующим:
public async Task<IActionResult> PatchStudent(int studentId, [FromBody] JsonPatchDocument<Student> student)
public async Task<IActionResult> PatchStudentAddress(int studentId, [FromBody] JsonPatchDocument<Address> studentAddress)
public async Task<IActionResult> PatchExActivities(int studentId, [FromBody] JsonPatchDocument<ExtraCurricular> studentExActivities)
Я хотел бы установить патч непосредственно в StudentDTO. я пробовал с
public async Task<IActionResult> PatchStudentDetails(int studentId, [FromBody] JsonPatchDocument updateStudentInfo)
{
StudentDTO student = await GetStudentInfo(int studentId);
updateStudentInfo.ApplyTo(student.StudentInfo);
updateStudentInfo.ApplyTo(student.StudentAddressDetails); //lin 2
updateStudentInfo.ApplyTo(student.ExActivities); //line 3
}
Если я попытаюсь обновить StudentInfo, я получу segment not found
или имя свойства, не найденное в двух других строках. Это имеет смысл. Как я могу реализовать этот сценарий с помощью JsonPatchDocument? или любой другой эффективный способ сделать это?
Заранее спасибо!