在持续更新我的业务实体之前,我需要执行验证检查以确定哪些属性已更改。例如,某些字段只能在“Status”属性具有特定值时更新。例如。当Order实体的状态为finalized时,只能更新notes(字符串)字段。这种事情是否可以使用NHibernate,或者我应该自己跟踪业务实体中的更改吗?
答案 0 :(得分:2)
如果我明白你要做什么,加布里埃尔的解决方案并不是你所需要的。如果不是,您可以尝试event listener。这些允许你挂钩到一个公共事件(比如保存)并在NHibernate完成save / insert / update / delete之前做一些处理。或者,您可以通过实现IInterceptor接口来研究使用拦截器。
答案 1 :(得分:0)
这种事情确实是可能的。 Coding Instinct有一篇很棒的帖子introducing NHibernate.Validator。