当使用 NHibernate 上下文的特性更改子集合中的对象之一时,我试图找出如何识别父对象是脏的。
我的意思是以下情况:
public class Parent
{
public IList<Child> Childs { get; set; }
}
public class Child
{
public String Name {get; set; }
}
...
var parent = session.Get<Parent>(1);
parent.Childs[0].Name = "new name";
// here <code>session.IsEntityDirty(parent)</code> should return true
我知道 ISession 的扩展,比如这里http://nhibernate.info/doc/howto/various/finding-dirty-properties-in-nhibernate.html和这里收集NHibernate: Find dirty collections。但是第一个(它只跟踪属性)和第二个(它只跟踪对集合对象的添加/删除操作)都不起作用。
我还想提一下,我更喜欢使用普通的 POCO 而不是 STE。
我将非常感谢您的解决方案。