在哪里可以找到关于NHibernate事件的良好参考以及每个事件的生命周期是什么样的?似乎有几个事件,如果没有适当的文档,很难确定各种事件之间的差异。
当然有明显的问题,例如OnSaveOrUpdate
- 但也有非显而易见的问题,例如ILoadEventListener
vs IPreLoadEventListener
vs IPostLoadEventListener
答案 0 :(得分:3)
我所知道的唯一官方文件是:http://nhibernate.info/doc/nhibernate-reference/index.html
以下是本文档的摘录,描述了事件系统。您在上面提到的事件是基于Load
界面中ISession
方法的侦听器。
如果您必须对持久层中的特定事件做出反应, 您也可以使用NHibernate2事件架构。事件系统 可以作为拦截器的补充或替代使用。
基本上所有ISession接口的方法都与之相关 一个事件。你有一个LoadEvent,一个FlushEvent等(请参阅XML 完整的配置文件XSD或NHibernate.Event命名空间 已定义事件类型的列表)。当请求其中一个时 方法,ISession生成一个适当的事件并将其传递给 为该类型配置的事件侦听器。开箱即用,这些 侦听器实现与这些方法始终相同的处理 导致。但是,您可以自由地实现其中一个的自定义 监听器接口(即,LoadEvent由。处理) 在中注册实现ILoadEventListener接口) 在哪种情况下,他们的实施将负责处理 任何由ISession发出的Load()请求。
与任何开源工具一样,有时您只需要下载源代码并查看注释或代码本身。
除了查看代码之外,还有很多关于nhibernate的书籍,也可能对你有所帮助。
NHibernate 3.0 Cookbook http://www.packtpub.com/nhibernate-3-0-cookbook/book
NHibernate 3初学者指南http://www.packtpub.com/nhibernate-3-beginners-guide/book(我推荐这本书)
使用NHibernate 3.0 http://www.wrox.com/WileyCDA/WroxTitle/Working-with-NHibernate-3-0.productCd-1118112571.html