Я пытаюсь реализовать Soft-удаляемый репозиторий. Обычно это легко сделать с помощью прослушивателя Delete Event. Чтобы отфильтровать удаленные объекты, я могу добавить атрибут Где к своему отображению класса. Однако мне также необходимо реализовать еще два метода в хранилище для этой сущности: Restore и Purge . Restore будет «восстанавливать» сущности, а Purge будет их жестко удалять. Это означает, что я не могу использовать атрибут «Где» (поскольку он блокирует программно удаленные объекты для любого доступа)
Я пытался использовать фильтры . Я могу создать фильтр и включить или отключить его в течение сеанса, чтобы достичь того же результата. Но проблема в том, что фильтры не влияют на метод Session.Get (они влияют только на доступ на основе ICriteria).
Есть идеи, как решить эту проблему?
Спасибо