В nhibernate я видел примеры того, как реализовать мягкое удаление. Например, https://nhibernate.info/blog/2008/09/06/soft-deletes.html
, но я не видел, как увеличить количество созданных жестких удалений. nhibernate генерирует запросы на удаление, которые он запускает в базе данных, подобной этой
delete from dbo.MyTable where ID = :id and timestamp = :timestamp
У нас есть проблема, когда параллельные операции запускаются, и эти удаления увеличиваются до блокировок страниц. Я хочу использовать подсказки блокировки или индексные подсказки, чтобы уменьшить область действия этих блокировок.
например (просто предположим, что этот синтаксис действительно действителен на данный момент - основная идея заключается в том, чтобы на самом деле иметь возможность увеличивать)
delete from dbo.MyTable with (rowlock, index(UX_SomeNiceIndex)) where ID = :id and timestamp = :timestamp
Возможно ли это? У меня сложилось впечатление, что мне нужен расширенный IEntityPersister, который в моем случае был бы своего рода перегрузкой SingleTableEntityPersister? Со всеми этими интерфейсами я надеялся, что кто-то задокументировал, как использовать и перегружать?