ENVERS (NHibernate 용 감사 및 로깅 도구)를 ValidityAuditStrategy 전략과 함께 작동 시키려고했으나 성공하지 못했습니다.ENVERS : Fluent 구성을 사용하여 ValidityAuditStrategy 구성
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));
내가 감사 전략을 구성하는 여러 가지 방법이 있지만 기본 전략은 항상 사용됩니다 :
내 NHibernate에 (유창하게 사용 envers 확장 방법은) 다음과 같습니다. 유효성 전략을 사용할 때 생성 된 감사 테이블에는 추가 열 "REVEND"가 있어야합니다. 그러나 이것은 사실이 아니며 나는 다음에 시도해야 할 부분에 약간의 상실감이 있습니다.
구성이 잘못 되었습니까? 또는 NHibernate에 의해 생성 된 SQL 테이블을 가질 수없는 것입니까? (구성의 마지막 줄에서이 작업을 수행합니다).
도움을 주시면 감사하겠습니다. 감사합니다.
감사합니다. 이유가 여기 있습니다. 그래서 간단합니다 :-) –