程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Nhibernate Evers,如何更改 AuditJoinTable 名称大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Nhibernate Evers,如何更改 AuditJoinTable 名称?

开发过程中遇到Nhibernate Evers,如何更改 AuditJoinTable 名称的问题如何解决?下面主要结合日常开发的经验,给出你关于Nhibernate Evers,如何更改 AuditJoinTable 名称的解决方法建议,希望对你解决Nhibernate Evers,如何更改 AuditJoinTable 名称有所启发或帮助;

我正在使用流畅的 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_

所有其他表都有相同的前缀,所以标准日志表继承它,只有Jointable没有

我找到了 java version 的设置,但没有找到 .net one

编辑: 现在我有这个命名约定的表:

XXX_table1
XXX_table2

主日志表是用_LOG后缀创建的,所以我得到

XXX_table1_LOG 
XXX_table2_LOG 

同时

AuditJointable 被创建为

table1table2_LOG 

我需要

XXX_table1table2_LOG 

解决方法

我通过将名称添加到每个连接表来解决这个问题。可能更通用,但它有效。

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 Evers,如何更改 AuditJoinTable 名称全部内容,希望文章能够帮你解决Nhibernate Evers,如何更改 AuditJoinTable 名称所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。