我正在尝试开始使用 nhibernate envers,并且在尝试配置它时似乎遇到了错误。我现在只是尝试在单个实体上设置审核,以使其保持简单。我收到以下错误:
An audited relation from Entities.Product.ProductUoms to a not audited entity Entities.ProductUom!
我这样设置我的审计:
var enversConf = new FluentConfiguration();
enversConf.Audit<Product>();
.ExcludeRelationData("productUoms")
.ExcludeRelationData(x => x.ProductUoms);
// instanceConfiguration.Properties.Add("nhibernate.envers.audit_table_prefix", string.Empty); // default
nhibernateConfiguration.Properties.Add("nhibernate.envers.audit_table_suffix", "_audit"); // default _AUD
nhibernateConfiguration.Properties.Add("nhibernate.envers.revision_field_name", "revision"); // default
nhibernateConfiguration.Properties.Add("nhibernate.envers.revision_type_field_name", "revision_type"); // default
nhibernateConfiguration.IntegrateWithEnvers(metaDataProvider: enversConf);
在我的产品实体中,我具有以下属性:
private IList<ProductUom> productUoms;
public virtual IEnumerable<ProductUom> ProductUoms { get { return this.productUoms.Select(x => x); } }
它们在 Fluent NHibernate 中映射如下:
HasMany(x => x.ProductUoms)
.KeyColumn("PROD_ID")
.Inverse()
.Access.CamelCaseField()
.Cascade.AllDeleteOrphan()
.Fetch.Select();
似乎应该避免引发的错误,因为我明确地试图排除对该关系的审计。不太确定这里出了什么问题。