親クラスオブジェクトを保存すると、それに関連する子クラスオブジェクトが保存されます。コレクションからオブジェクトを削除すると、データベースからも削除されます。
しかし最近、遅延読み込みを無効にするようにコードを変更しました。それ以来、再帰的な保存は機能しません。
何が欠けているのか誰か教えてください。私は検索しようとしましたが、見つけた解決策は本当にうまくいきました。
以下のようなドメインクラスがあります
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();
}
}