Envers,不在历史表中插入删除孤立删除

时间:2013-10-31 16:16:49

标签: c# .net nhibernate nhibernate-envers

我们正在使用 NHibernate Envers 。一切正常,但是envers没有插入审计来删除孤儿。

Inverse().Cascade.AllDeleteOrphan()

哪里可以为nhibernate找到一个好的envers文档? 是否有可能 evers 正在历史表中删除条目以删除孤儿?

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

祝你好运!

1 个答案:

答案 0 :(得分: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();

但是只有当关系结束没有被声明为反向时。

    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/