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,正如我提到的那样,它工作得很好,直到我禁用懒惰加载。 –