1

我对 NHibernate Envers 完全陌生,我在实体映射多对多关系中添加了新字段。

public class Product 
{
// initialization in ctor
...
public virtual ISet<FundProduct> ExcludedFromConversion { get; set; }
...
// mapping in ClassMap
            Set(x => x.ExcludedFromConversion, m =>
            {
                m.Table("ExcludedProduct");
                m.Cascade(Cascade.None);
                m.Key(k => k.Column("ProdId"));
            }, map => map.ManyToMany(p => p.Column("ExcludedProdId")))
...
}

并且 Envers 配置中的这一行不断抛出异常:

protected virtual void ConfigureEnvers() 
{
...       
configuration.IntegrateWithEnvers(enversConf);
}

消息“无法将 'NHibernate.Mapping.Formula' 转换为 'NHibernate.Mapping.Column'。” 和堆栈跟踪的顶部:在 System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext() (...) 中的“ w NHibernate.Envers.Tools.MappingTools.b__0(ISelectable f)

我试图通过添加禁用此属性的审核,[NotAudited][Audited(TargetAuditMode = RelationTargetAuditMode.NotAudited)]它没有帮助。

它可以在没有 Envers 的情况下工作(禁用 ConfigureEnvers 方法)。

任何帮助/想法表示赞赏,谢谢!

4

1 回答 1

0

大概是这个问题。它已在最新的 envers 版本中得到修复(2.0 CR1 - 它刚刚发布)。你用的是什么版本?

于 2014-08-11T08:48:46.957 回答