在持久化之前使用 NHibernate 确定哪些字段已更新(用于验证目的)
在对我的业务实体进行持久更新之前,我需要执行验证检查以确定哪些属性已更改。 例如,某些字段仅当“状态”属性具有特定值时才能更新。 例如,当订单实体的状态为最终确定时,只能更新注释(字符串)字段。 使用 NHibernate 是否可以实现这种事情,或者我应该自己跟踪业务实体中的更改?
Prior to persisting updates to my business entities, I need to perform validation checks to determine which properties have been changed. For example, certain fields can only be updated when the "Status" property has a particular value. E.g. when an Order entity has a Status of finalized, only the notes (string) field can be updated. Is this sort of thing possible using NHibernate, or should I be tracking the changes myself in the Business entities?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果我明白你想要做什么,加布里埃尔的解决方案并不完全符合你的需要。 如果不是,您可以尝试 事件监听器< /a>. 这些允许您挂钩一个常见事件(例如保存时)并在 NHibernate 完成保存/插入/更新/删除之前进行一些处理。 或者,您可以通过实现 IInterceptor 接口来研究使用拦截器。
If I understand what you're trying to do, Gabriel's solution is not quite what you need. If it is not, you can try an event listener. Those allow you to hook into a common event (like on save) and do some processing before NHibernate finishes the save/insert/update/delete. Alternatively, you could look into using interceptors by implementing the IInterceptor interface.
这种事情确实是有可能的。 Coding Instinct 有一篇很棒的文章介绍 NHibernate.Validator。
This sort of thing is indeed possible. Coding Instinct has a great post introducing NHibernate.Validator.