2

我在哪里可以找到关于 NHibernate 事件的良好参考以及每个事件的生命周期是什么样的?似乎有几个事件,如果没有适当的文档,很难确定各种事件之间有什么区别。

当然有明显的,比如OnSaveOrUpdate- 但也有不明显的,比如ILoadEventListenervs IPreLoadEventListenervsIPostLoadEventListener

4

1 回答 1

3

我知道的唯一官方文档在这里: http: //nhibernate.info/doc/nhibernate-reference/index.html

以下是描述事件系统的文档的摘录。您上面提到的事件是基于接口中的Load方法的侦听ISession器。

12.2. 活动系统

如果您必须对持久层中的特定事件做出反应,您也可以使用 NHibernate2 事件架构。事件系统可以作为拦截器的补充或替代使用。

基本上 ISession 接口的所有方法都与一个事件相关联。您有一个 LoadEvent、一个 FlushEvent 等(请参阅 XML 配置文件 XSD 或 NHibernate.Event 命名空间以获取已定义事件类型的完整列表)。当使用这些方法之一发出请求时,ISession 会生成一个适当的事件并将其传递给为该类型配置的事件侦听器。开箱即用,这些侦听器实现了与这些方法始终产生的相同处理。但是,您可以自由实现对其中一个侦听器接口的自定义(即,LoadEvent 由 ILoadEventListener 接口的注册实现处理),在这种情况下,它们的实现将负责处理由会话。

与任何开源工具一样,有时您只需要下载源代码并查看评论或代码本身。

除了查看代码之外,还有许多关于 nhibernate 的书籍可能对您也有帮助。

NHibernate 3.0 食谱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

于 2013-08-07T17:19:50.100 回答