2

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

我知道该错误已被报告(NHE-122)并已为未来的 2.0 版本修复

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

4

1 回答 1

5

一个简单的解决方法是使用您自己的 IRevisionListener。在那里,您将时间戳值设置为 DateTime.UtcNow 或其他任何值。

假设您正在使用 FluentConfiguration ...

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

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

于 2013-06-20T11:24:57.203 回答