0

我的目标是通过配置文件配置 NHibernate.Envers。据我了解的文档,它应该很容易通过在 NHibernate Core xml 文件中添加一个属性条目来实现。

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2" >
  <session-factory name="NHibernate.Test">
    ....
    <property name="nhibernate.envers.audit_table_suffix">_history</property>
  </session-factory>
</hibernate-configuration>

但这会导致异常:

“名称”属性无效 - 根据其数据类型“字符串”,值“nhibernate.envers.audit_table_suffix”无效 - 枚举约束失败。

我确实理解异常,NHibernate 核心检查 name 属性中的有效内容。如何设置 NHibernate.Envers 属性?

当我通过代码设置它时,相同的属性有效:

        cfg = new Configuration();
        cfg.Configure("NHibernate.cfg.xml");

        // NHibernate.Envers Configuration
        cfg.SetProperty("nhibernate.envers.audit_table_suffix", "_history");
4

1 回答 1

1

不幸的是,文档是错误的。您不能将它放在您的 NH Core 配置中,因为 NH Core 将对您的 xml 进行模式验证(并且不知道 envers 属性)。

我将很快更新 Envers 文档。

于 2012-12-07T12:42:01.857 回答