我的目标是通过配置文件配置 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");