NHibernate Envers版本信息的UTC时间戳

时间:2013-06-20 08:28:01

标签: c# nhibernate audit-logging nhibernate-envers

我正在使用NHibernate Envers 1.6.0并且需​​要使用UTC时间戳而不是本地REVINFO中的REVTSTMP列。

我知道已报告错误(NHE-122)并已修复以用于将来的版本2.0

有什么办法可以将DefaultRevisionInfoGenerator更改为我自己的自定义IRevisionInfoGenerator吗?

1 个答案:

答案 0 :(得分:5)

一个简单的解决方法是使用您自己的IRevisionListener。在那里你将timestamp值设置为DateTime.UtcNow或其他。

假设你正在使用FluentConfiguration ......

var enversCfg = new FluentConfiguration();
enversCfg.SetRevisionEntity<DefaultRevisionEntity>(r => r.Id, r=> r.RevisionDate, yourRevisionListener>();

修改 忘了提...... 如果您正在使用自己的自定义RevisionEntity(即使它是“DefaultRevisionEntity”),您也需要映射此实体。