NHibernate Envers -相同类型的多对多关系错误

本文关键字:关系 错误 同类型 Envers NHibernate | 更新日期: 2023-09-27 18:17:20

我是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")))
...
}

和enver配置中的这一行一直抛出异常:

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

消息"Cannot cast 'NHibernate.Mapping. "公式'到'NHibernate.Mapping.Column'。"和堆栈顶部的跟踪:在" w NHibernate.Envers.Tools.MappingTools. "b__0(ISelectable f) in system . linq . enumerable . whereselectlisttiterator ' 2.MoveNext()(…)

我已经尝试通过添加[NotAudited][Audited(TargetAuditMode = RelationTargetAuditMode.NotAudited)]来禁用此属性的审计,但它没有帮助。

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

任何帮助/想法都很感激,谢谢!

NHibernate Envers -相同类型的多对多关系错误

可能是这个问题。在最新的envers版本(2.0 CR1 -刚刚发布)中已经修复了这个问题。你用的是什么版本?