我一直在 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();
}
}