У меня есть таблица:
[Table("Employee")]
public class Employee
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public bool IsDeleted { get; set; }
}
И я добавил атрибут мягкого удаления "IsDeleted". Для этого я добавил фильтр, чтобы удаленные данные не отображались, когда я получаю запрос всех сотрудников. Пока все работает нормально, я получаю список всех пользователей, которые не являются "IsDeleted", и я могу сделать запрос на удаление сотрудника, а затем сделать запрос на получение, и удаленного пользователя нет в полученном списке. Вот фильтр:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Employee>()
.HasQueryFilter(p => !p.IsDeleted);
base.OnModelCreating(modelBuilder);
}
Теперь главная проблема - как заставить этот фильтр работать только с GET-запросом? Потому что в настоящее время я могу установить только «isDeleted» = true, но не могу восстановить сотрудника (измените «isDeleted» на «false»). Ничего нельзя поделать с сотрудниками, которые удалены из списка.