0
我試圖使ENVERS(NHibernate的審計和日誌記錄工具)與ValidityAuditStrategy策略一起工作,但我一直沒有成功。ENVERS:配置ValidityAuditStrategy使用Fluent配置
我NHibernate的(使用流利擴展envers法)看起來是這樣的:
var fluentConfiguration = Fluently.Configure()
.Database(msSqlConfiguration)
.Mappings(m =>
m.FluentMappings.AddFromAssemblyOf<MetaObject>())
.Mappings(m =>
m.FluentMappings.Conventions.AddFromAssemblyOf<MetaObject>())
.ExposeConfiguration(cfg =>
{
cfg.EventListeners.PreInsertEventListeners =
new IPreInsertEventListener[] { new SimpleAuditEventListener() };
cfg.EventListeners.PreUpdateEventListeners =
new IPreUpdateEventListener[] { new SimpleAuditEventListener() };
// ENVERS
cfg.IntegrateWithEnvers(GetEnversConfiguration()); // this is ok
// ENVERS Strategy
//cfg.SetProperty("nhibernate.envers.audit_strategy ", typeof(ValidityAuditStrategy).AssemblyQualifiedName); // does not work :-(
cfg.SetProperty("nhibernate.envers.audit_strategy ", "NHibernate.Envers.Strategy.ValidityAuditStrategy"); // does not work :-(
cfg.SetEnversProperty(ConfigurationKey.AuditStrategy, typeof(ValidityAuditStrategy)); // does not work :-(
}
).ExposeConfiguration(cfg => new SchemaUpdate(cfg).Execute(false, true));
我有不同的方式來配置審計策略,但總是使用默認的策略。當使用有效性策略時,創建的審計表應該有一個額外的列「REVEND」。然而,情況並非如此,我對接下來應該嘗試的事情有點失落。
我的配置錯了嗎?或者是不可能有由NHibernate創建的SQL表(我用配置的最後一行做這個)。
任何幫助表示讚賞。 謝謝
謝謝,就是這個原因。很簡單 :-) –