NHibernate和生命周期事件

时间:2009-04-22 12:14:16

标签: .net nhibernate entity

有人可以举例说明Ayende在25 Reasons Not To Write Your Own Object Relational Mapper

列表中的第17项中谈论的内容

这是ADO.NET实体框架可以做的吗?

2 个答案:

答案 0 :(得分:1)

想象一下AD支持的Membership模型,它也将信息存储在SQL中。创建用户时,您可能希望能够在AD和SQL中创建用户。生命周期事件使您有机会拦截某些事件,如创建更新等。允许您执行某些操作。

答案 1 :(得分:0)

NHibernate有一个事件系统,当NHibernate与你的实体做某事时,你会得到事件(实际上就是回调)。回调可以在会话中注册,也可以使用接口在实体中实现。

有许多使用这种回调的例子,它对项目来说可能至关重要。许多人正在使用这些回调编写审计日志。或者只更新一些未存储在数据库中的属性。 Ayende可能意味着“从其他位置获取数据”。

我不知道实体框架是否有生命周期回调。 NHibernate非常非常易于扩展,您可以将自定义代码挂钩到几乎每个部分。一般来说,我怀疑实体框架是可扩展的。