相关疑难解决方法(0)

IPreUpdateEventListener和dynamic-update ="true"

我一直试图在Ayende的博客之后做一个非常简单的审计场景,这似乎是每个人在IPreUpdateEventListener和IPreInsertEventListener时所引用的资源.

然而,无论我怎么努力,我都无法让它发挥作用.事件正确启动,当我通过它时一切看起来都没问题,但是我的"更改时间"没有更新到数据库.

我花了大约一天google搜索这一点,并终于找到了答案在这里.

当您使用dynamic-update ="true"映射实体时,它将无法工作.果然,对我来说就是这样.既然我很难找到这条信息,那么使用dynamic-update ="true"是不常见的?我们在所有实体上使用它.

由于这对我们来说是一个重大障碍,我想问一下这有什么办法吗?

我一直在关注IInterceptor,但它总是被认为是过时的,那么这有什么缺点呢?另外,我还没有找到一个关于如何使用IInterceptor进行相同审计(使用插入/更新时间戳)的非常好的教程(我对NHibernate相当新).

任何帮助,将不胜感激!

nhibernate nhibernate-mapping

10
推荐指数
1
解决办法
2218
查看次数

NHibernate - 如何审计实体的所有字段?

我正在使用NHibernate并寻找一种解决方案,允许我审核实体中所有字段的更改.我希望能够为每个实体创建一个历史表,即Users - > UsersHistory,它将具有与Users表相同的结构以及其他字段,例如操作类型(更新,删除),进行更改的用户的用户ID等.我不想为每个实体定义这样的类.我正在寻找类似History<T>(即History<User>)的东西,因为这些条目不属于我的域,只会用于准备对实体所做的更改列表.我还认为在代码中创建对这些表的插入更好,而不是创建sql触发器.基本上,我只需要在更新或删除时在历史表中创建记录副本,我希望NHibernate生成插入.我还需要从历史表中读取记录 - 正如我所说,这些表将包含实体字段和一些常见的历史字段.

我找不到有关如何创建此类解决方案的指导.我所能找到的只是添加UserModified,UpdatedTimestamp等,如果我已经在实体上有这样的字段.但是,我需要实体的完整历史记录,而不仅仅是最后更改条目的信息.

在此先感谢您的帮助.

.net c# nhibernate hibernate

9
推荐指数
2
解决办法
7953
查看次数

标签 统计

nhibernate ×2

.net ×1

c# ×1

hibernate ×1

nhibernate-mapping ×1