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' にキャストできません。」およびスタック トレースの先頭: in " w NHibernate.Envers.Tools.MappingTools.b__0(ISelectable f) in System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext() (...)

[NotAudited]andを追加して、このプロパティの監査を無効にしようとしました[Audited(TargetAuditMode = RelationTargetAuditMode.NotAudited)]が、役に立ちませんでした。

Envers なしで動作します (ConfigureEnvers メソッドが無効になっています)。

どんな助け/アイデアも大歓迎です、ありがとう!

4

1 に答える 1