【问题标题】:UTC timestamps for NHibernate Envers revision infoNHibernate Envers 修订信息的 UTC 时间戳
【发布时间】:2013-06-17 00:33:57
【问题描述】:
我正在使用 NHibernate Envers 1.6.0,并且需要为 REVINFO 中的 REVTSTMP 列使用 UTC 时间戳而不是本地时间戳。
我知道该错误已被报告 (NHE-122) 并已在未来的 2.0 版中修复
有什么方法可以将 DefaultRevisionInfoGenerator 更改为我自己的自定义 IRevisionInfoGenerator?
【问题讨论】:
标签:
c#
nhibernate
audit-logging
nhibernate-envers
【解决方案1】:
一个简单的解决方法是使用您自己的 IRevisionListener。在那里,您将时间戳值设置为 DateTime.UtcNow 或其他任何值。
假设您正在使用 FluentConfiguration...
var enversCfg = new FluentConfiguration();
enversCfg.SetRevisionEntity<DefaultRevisionEntity>(r => r.Id, r=> r.RevisionDate, yourRevisionListener>();
编辑
忘了说...
如果您使用自己的自定义 RevisionEntity(即使它是“DefaultRevisionEntity”,您也需要在上面执行此操作),您需要映射此实体。