то, о чем вы говорите - это мягкое удаление строк данных.в базе данных добавьте новое логическое поле с именем Status или IsDeleted или любым другим, со значением по умолчанию false .Когда вы нажмете кнопку «Удалить» в пользовательском интерфейсе, создайте запрос, чтобы просто обновить этот флаг с false до true
Когда вы запрашиваете список вещей для отображения напользовательский интерфейс возвращает те, для которых установлен флаг false .
Это основная идея программного удаления данных.Вы только отмечаете, что данные удалены, но фактически не удаляете их.
Если хотите, позже вы можете добавить процесс, в котором вы перемещаете мягко удаленные данные в заархивированную таблицу, просто чтобы сохранить порядок.,Подобные действия имеют дополнительное преимущество: вы всегда можете восстановить данные, если вам это нужно.Все, что вам действительно нужно, это изменить флаг обратно на false , и все готово, все работает и данные отображаются.
Один последний момент от меня, если вы все, что вы хотитеВы можете удалить элемент, и все, что вам нужно, это передать идентификатор записи.вам не нужно беспокоиться об изменениях в других областях.Обычно вы не обновляете информацию и не удаляете ее одновременно.Поэтому создайте простой контроллер, который отвечает на PUT, например:
[HttpPut]
[Route("api/UserAPI")]
public HttpResponseMessage Delete(int userId)
{
var foundUser = ctx.User.Find(userId);
foundUser.IsDeleted = true;
ctx.SaveChanges();
}
, конечно, добавьте всю свою проверку, коды возврата, все, что вам нужно, но это, по сути, все, что вам нужно.
Не забудьте изменить метод, который возвращает активных пользователей, чтобы игнорировать тех, для которых флаг IsDeleted имеет значение true.