状态改变而不是真正的删除

时间:2012-06-18 15:13:15

标签: nhibernate fluent-nhibernate nhibernate-3

是否可以重载Session.Delete()行为,以便不从数据库执行实际删除,而是将int State列的值更新为特殊已删除的值?并且可以通过GetAll()方法限制然后加载已删除的实体。

1 个答案:

答案 0 :(得分:3)

这种删除称为软删除。您可以使用拦截器覆盖Session.Delete()并在类映射上使用where来定义公式,如:

<class where="State=0" ...>

Gabriel Schenker在nhforge.org上有一个例子:http://nhibernate.info/blog/2008/09/06/soft-deletes.html