0
我一直在使用nhibernate中的技術,如果我保存父類對象與它相關的子類對象是oso保存。如果我從集合中刪除任何對象,他們也會從db中刪除。nhibernate延遲加載和遞歸保存
但最近我修改了我的代碼以禁用延遲加載,並從此遞歸保存不起作用。
任何人都可以告訴我什麼是我錯過了。我試圖搜索,但我發現的解決方案真的爲我工作。
我有類似下面
public class Class1
{
public virtual long Id { get; set; }
public virtual string Name { get; set; }
public virtual IList<Class2> Class2Seq { get; set; }
}
public class Class2
{
public virtual long Id { get; set; }
public virtual string Name { get; set; }
public virtual Class1 Class1Ref{ get; set; }
}
的一個映射類是類似於這些
public class Class1Map: ClassMap<Class1>
{
public Class1Map()
{
Id(x => x.Id).GeneratedBy.Increment();
Map(x => x.Name);
HasMany(x => x.Class2Seq)
.KeyColumn("Class1Id")
.Not.LazyLoad()
.Inverse()
.Cascade.All();
}
}
public class Class2Map: ClassMap<Class2>
{
public Class2Map()
{
Id(x => x.Id).GeneratedBy.Increment();
Map(x => x.Name);
References(x => x.Class1Ref).Column("Class1Id").Not.LazyLoad();
}
}
好的。但DeleteOrphan是必需的remove()...沒有saveorupdate()應該工作是不是? –
是的,它應該像在parent.add(child)中一樣 - 只要你設置了child.parent –
是的,我設置了child.parent,正如我提到的那樣,它工作得很好,直到我禁用懶惰加載。 –