-1

我们正在使用NHibernateEnvers。一切正常,但 envers 没有插入删除孤儿的审计。

Inverse().Cascade.AllDeleteOrphan()

我在哪里可以找到关于 nhibernate 的好的 envers 文档?是否有可能让evers删除历史表中的条目以删除孤儿?

...
entity.SomeCollection.Clear(); //Orphans will be deleted because cascade is AllDeleteOrphan.
tx.commit();

此致!

4

1 回答 1

0

是的,自己找到了答案。Envers 正在为孤立删除进行插入:

ISession session = sessionFactory.OpenSession();
ITransaction tx = session.BeginTransaction();

MyItem item = session.Get<MyItem>(44); //Item enthält ein Tag.

item.Tags.Clear();

tx.Commit(); 

session.Close();

但仅当关系 end 未声明为逆时。

    HasManyToMany(x => x.Items)
        .Table("MyItem_MyTag")
        .ParentKeyColumn("MyTagID")
        .ChildKeyColumn("MyItemID")
        .Cascade.All()
        .Inverse().LazyLoad();

如果您想要一个条目,请添加:

nhibernate.envers.revision_on_collection_change

http://envers.bitbucket.org/

于 2013-11-05T20:56:33.800 回答