1

我正在尝试开始使用 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();

似乎应该避免引发的错误,因为我明确地试图排除对该关系的审计。不太确定这里出了什么问题。

4

0 回答 0