【发布时间】:2010-10-27 21:25:30
【问题描述】:
我正在使用 NHibernate 拦截器将有关更新/插入/删除的信息记录到我的各个实体。
记录的信息中包含实体类型和已修改实体的唯一 ID。唯一 ID 在 NHibernate 映射文件中标记为 <generator class="identity">。
明显的问题是当使用 IInterceptor.OnSave() 记录插入操作时,尚未分配实体的 ID。
在记录审计信息之前如何获取插入实体的Id?
(我已经研究过 NHibernate Listeners PostSave 事件,但无法让它们与正在使用的 Spring.net 配置一起工作,所以如果可能的话,我想坚持使用拦截器)
代码:
// object id parameter is null...
public override bool OnSave(object entity, object id, object[] state,
string[] propertyNames, IType[] types)
{
AddAuditItem(entity, INSERT);
return false;
}
【问题讨论】:
标签: nhibernate audit interceptor