我有一个看起来像的模型:
class Case
{
public virtual ISet<CaseToCaseTag> CaseTags { get; set; }
public virtual DateTime LastModified { get; set; }
}
class CaseToCaseTag
{
public virtual Case Left { get; set; }
}
在审核与 envers 的这种关系时,我在从集合中删除值时遇到了修改属性跟踪的问题。
如果从集合中删除值时我在 case-entity 中唯一更改的是“set-removal”,那么 envers 会正确跟踪该CaseTags
属性在修订中被修改。但是,如果我还更改了任何其他属性,例如LastModified
属性,我没有正确设置 CaseTags_MOD 标志。
我已经追踪到(我认为)这个AuditProcess.AddWorkUnit
方法。当我只从集合中删除时,只WorkUnit
添加了一个 (a CollectionChangeWorkUnit
),但是当我还更改另一个属性时,另一个WorkUnit
(a ModWorkUnit
) 也会被添加。
然后似乎发生的CollectionChangeWorkUnit
是 被丢弃以支持ModWorkUnit
,而后者又不会获取对集合的更改。
是我试图不支持的东西,还是有办法解决它?