Nhibernate envers 修改后的列不能正确跟踪从集合中删除

Nhibernate envers modified columns doesn't correctly track removals from collection

我有一个看起来像这样的模型:

class Case
{
    public virtual ISet<CaseToCaseTag> CaseTags { get; set; }
    public virtual DateTime LastModified { get; set; }
}

class CaseToCaseTag
{
    public virtual Case Left { get; set; }
}

在审核与 envers 的这种关系时,我 运行 在从集合中删除值时遇到修改后的 属性 跟踪问题。

如果从集合中删除值时我在案例实体中更改的 只有 是 "set-removal" 那么 envers 正确跟踪 CaseTags 属性在修订版中修改。但是,如果我还更改任何其他 属性,例如 LastModified 属性,我不会正确设置 CaseTags_MOD 标志。

我已经追踪到(我认为)这个 AuditProcess.AddWorkUnit 方法。 当我只从集合中移除时,只添加了一个 WorkUnit(一个 CollectionChangeWorkUnit),但是当我还更改另一个 属性、另一个 WorkUnit(一个 ModWorkUnit ) 也被添加。

然后似乎发生的事情是 CollectionChangeWorkUnit 被丢弃,取而代之的是 ModWorkUnit,而 ModWorkUnit 又不会接收对集合的更改。

我想做的是不受支持的,还是有解决办法?

听起来像个错误。请创建一个包含最少映射的拉取请求以重现该问题。