Nhibernate Evers,如何更改 AuditJoinTable 名称
Nhibernate Evers, how to change AuditJoinTable name
我在此设置中使用流畅的 Nhibernate 和 Envers
var enversConf = new NHibernate.Envers.Configuration.Fluent.FluentConfiguration();
enversConf.Audit<Segnalazione>()
IRevisionListener revListner = services.GetService<IRevisionListener>();
enversConf.SetRevisionEntity<RevisionEntity>(e => e.Id, e => e.RevisionDate, revListner);
cfg.SetEnversProperty(ConfigurationKey.AuditTableSuffix, "_LOG");
cfg.SetEnversProperty(ConfigurationKey.AuditStrategy, typeof(CustomValidityAuditStrategy));
cfg.IntegrateWithEnvers(enversConf);
我需要更改 AuditJoinTable 命名并添加前缀 XXX_
所有其他 table 具有相同的前缀,因此标准日志记录 table 继承了它,只有 JoinTable 没有
我找到了 java version 的设置,但没有找到 .net one
的设置
编辑:
现在我有 table 这个命名约定:
XXX_Table1
XXX_Table2
主日志table是用_LOG后缀创建的,所以我得到
XXX_Table1_LOG
XXX_Table2_LOG
而
AuditJoinTable 创建为
Table1Table2_LOG
我需要
XXX_Table1Table2_LOG
我通过将名称添加到每个连接 table 来解决这个问题。可以更通用,但它有效。
enversConf.Audit<Segnalazione>()
.SetTableInfo(ug => ug.Foo, t => t.TableName = "XXX_Segnalazione_Foo")
你的意思是cfg.SetEnversProperty(ConfigurationKey.AuditTablePrefix, "XXX_")
不起作用?应该。
IEnversNamingStrategy
用于决定表的名称,默认使用 this one,其中 ConfigurationKey.AuditTablePrefix
用于“默认前缀”。如果你愿意,你也可以注入你自己的这个接口的实现。
使用 SetTableInfo
覆盖它并且肯定有效,但如果我理解正确的话,在这种情况下你不需要这样做。
我在此设置中使用流畅的 Nhibernate 和 Envers
var enversConf = new NHibernate.Envers.Configuration.Fluent.FluentConfiguration();
enversConf.Audit<Segnalazione>()
IRevisionListener revListner = services.GetService<IRevisionListener>();
enversConf.SetRevisionEntity<RevisionEntity>(e => e.Id, e => e.RevisionDate, revListner);
cfg.SetEnversProperty(ConfigurationKey.AuditTableSuffix, "_LOG");
cfg.SetEnversProperty(ConfigurationKey.AuditStrategy, typeof(CustomValidityAuditStrategy));
cfg.IntegrateWithEnvers(enversConf);
我需要更改 AuditJoinTable 命名并添加前缀 XXX_
所有其他 table 具有相同的前缀,因此标准日志记录 table 继承了它,只有 JoinTable 没有
我找到了 java version 的设置,但没有找到 .net one
的设置编辑: 现在我有 table 这个命名约定:
XXX_Table1
XXX_Table2
主日志table是用_LOG后缀创建的,所以我得到
XXX_Table1_LOG
XXX_Table2_LOG
而
AuditJoinTable 创建为
Table1Table2_LOG
我需要
XXX_Table1Table2_LOG
我通过将名称添加到每个连接 table 来解决这个问题。可以更通用,但它有效。
enversConf.Audit<Segnalazione>()
.SetTableInfo(ug => ug.Foo, t => t.TableName = "XXX_Segnalazione_Foo")
你的意思是cfg.SetEnversProperty(ConfigurationKey.AuditTablePrefix, "XXX_")
不起作用?应该。
IEnversNamingStrategy
用于决定表的名称,默认使用 this one,其中 ConfigurationKey.AuditTablePrefix
用于“默认前缀”。如果你愿意,你也可以注入你自己的这个接口的实现。
使用 SetTableInfo
覆盖它并且肯定有效,但如果我理解正确的话,在这种情况下你不需要这样做。