我的目标是通过配置文件配置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>
但这会导致异常:
'name'属性无效 - 值'nhibernate.envers.audit_table_suffix'根据其数据类型'String'无效 - Enumeration约束失败。
我理解异常,NHibernate核心检查name属性中的有效内容。如何设置NHibernate.Envers属性?
当我按代码设置时,相同的属性有效:
cfg = new Configuration();
cfg.Configure("NHibernate.cfg.xml");
// NHibernate.Envers Configuration
cfg.SetProperty("nhibernate.envers.audit_table_suffix", "_history");
答案 0 :(得分:1)
不幸的是文档错了。你不能把它放在你的NH Core配置中,因为NH Core会对你的xml进行模式验证(并且不知道envers属性)。
我将很快更新Envers文档。