NHibernate Envers版本信息的UTC时间戳

Mik*_*737 2 c# nhibernate audit-logging nhibernate-envers

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

我知道已经报告了这个bug(NHE-122)并且已经修复了未来的2.0版本

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

Rog*_*ger 5

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

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

var enversCfg = new FluentConfiguration();
enversCfg.SetRevisionEntity<DefaultRevisionEntity>(r => r.Id, r=> r.RevisionDate, yourRevisionListener>();
Run Code Online (Sandbox Code Playgroud)

编辑 忘记提及...如果您使用自己的自定义RevisionEntity(即使它是"DefaultRevisionEntity",您在上面执行),您需要映射此实体.