1

在对我的业务实体进行持久更新之前,我需要执行验证检查以确定哪些属性已更改。例如,某些字段只能在“状态”属性具有特定值时更新。例如,当 Order 实体的 Status 为 finalized 时,只能更新 notes(字符串)字段。这种事情是否可以使用 NHibernate,或者我应该自己跟踪业务实体中的更改?

4

2 回答 2

2

如果我了解您要做什么,那么加布里埃尔的解决方案并不是您所需要的。如果不是,您可以尝试使用事件侦听器。这些允许您在 NHibernate 完成保存/插入/更新/删除之前挂钩到一个常见事件(如保存)并进行一些处理。或者,您可以通过实现 IInterceptor 接口来研究使用拦截器。

于 2009-05-22T12:10:35.443 回答
0

这种事情确实是可能的。Coding Instinct 有一篇很棒的文章介绍了 NHibernate.Validator

于 2009-05-22T02:50:11.763 回答