我正在做一个需要审计跟踪的小项目。
我已经连接到 IPostUpdateEventListener 并且有一个基本的审计跟踪,适用于简单的对象。
public class Foo
{
public virtual int Id { get; set; }
public virtual string PropName { get; set; }
public virtual ISet<Boo> Boos { get; set; }
}
public class Boo
{
public virtual int Id { get; set; }
public virtual string PropName { get; set; }
public virtual Foo Foo { get; set; }
}
当我想在相关的 Foo 对象中更改 Boo 加载的外键并执行 SaveOrUpdate 时 - 这适用于审计跟踪。
当我得到事件侦听器时,我检查脏值,唯一的脏属性将是 Foo 对象,但问题是 Foo 中的 ISet Boos 没有启动。所以会抛出访问延迟加载的属性的错误。
如果我更改实体以外的其他属性,它工作正常,我似乎无法为另一个对象的属性执行此操作。
有没有更好的方法来更新 Boo 的父级?
因为我想在我的审计跟踪中显示更改的 Foo ID 以显示外键已更改。
干杯