Энверс не спасает аудиты-Nhibernate

У меня есть следующая конфигурация envers:

        hibernateCfg.SetEnversProperty(ConfigurationKey.DefaultSchema, "audit");
        hibernateCfg.SetEnversProperty(ConfigurationKey.RevisionFieldName, "Rev");
        hibernateCfg.SetEnversProperty(ConfigurationKey.RevisionTypeFieldName, "RevType");
        hibernateCfg.SetEnversProperty(ConfigurationKey.AuditTableSuffix, "_Audit");

        var cfg = new FluentConfiguration();
        cfg.SetRevisionEntity<RevisionInfo>(x => x.Id, x => x.RevisionTimestamp, new RevisionListener());

        cfg.Audit<User>().Exclude(x=>x.Account).Exclude(x=>x.Agentie).Exclude(x=>x.Location).Exclude(x=>x.Produse).Exclude(x=>x.Roles);
        //cfg.Audit<Account>().ExcludeRelationData(x => x.Users);
        //cfg.Audit<Document>();

        hibernateCfg.IntegrateWithEnvers(new EnhancedAuditEventListener(), cfg);

Таблица аудита не создается и данные не сохраняются. Я пытался создать таблицу audit.User_Audit сам, но ничего не меняется. У меня nhibernate envers 1.30 и nhibernate 3.3.1.

Нужна ли другая конфигурация, чтобы это работало?

1 ответ

Решение

Я решил это. Проблема заключалась в том, что у меня было несколько производных классов от User (например, BrokerUser: User), которые я использовал с дискриминаторами. После того, как я добавил:

cfg.Audit<BrokerUser>()

проблема была решена.

Другие вопросы по тегам