Я спрашиваю себя, как реализовать один метод внутри контроллера с HTTP Post для создания / обновления сущностей?Особенно, что делать, если права доступа с данным первичным ключом уже существуют, и я хочу обновить только некоторые свойства объекта?
В данный момент я использую два метода: один POST для создания и один PUT для обновления.
Упрощенный ControllerCode (исключены обработка ошибок и проверка модели):
[HttpPost]
public IActionResult Create([FromBody] Dto[] dtos)
{
foreach(DTO d in dtos){
_repo.Create(d);
}
_repo.Save();
return StatusCode(201);
}
[HttpPut]
public IActionResult Update([FromBody] Dto[] dtos)
{
foreach(d in dtos) {
_repo.Update(d);
}
_repo.Save();
return StatusCode(201);
}
Я не могу найти конкретные темы для этой проблемы.То, что я не хочу делать, - это чтение вначале, так что вам всегда нужно проверять в контексте, существует ли уже заданная сущность (тот же первичный ключ) для обновления свойств.
См. Эту ссылку на Microsoft: https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/crud?view=aspnetcore-2.0#update-the-edit-page
В Entity Framework 5 был метод AddOrUpdate, но он больше не доступен в EF Core.
У вас есть идеи?или полезные ссылки как реализовать?
Большое спасибо!:)