М'яке видалення () — шаблон проєктування, при якому сутність не видаляється зі сховища, а лише помічається як видалена.
Переваги та недоліки
Переваги
Дані ніколи не втрачаються оскільки нічого не видаляється. Операція видалення працює швидше. Запобігає випадковому видаленню даних.
Недоліки
Зростає розмір сховища. Всі запити містять додатковий фільтр, який варто підтримувати.
Реалізація
Нехай, ми створюємо систему обліку даних. Тоді важливо, щоб усі звіти зберігались у системі, навіть після видалення. Додамо властивість, яка відстежує видалення.
Та додамо до усіх запитів перевірку на те чи сутність видалена.
При використанні доступні лише "не видалені" сутності.
Також щоб не змінювати код, можна додати тригер, який замінить операцію видалення:
Джерела Soft delete pattern в Entity Framework Are soft deletes A Good Idea