誰か助けてくれないかしら。私は親子関係があり、親は子供と1対1の関係にありますが、子供は多くの親を持つことができます。
親マッピング:
public sealed class DatumMap : ClassMap<Datum>
{
public DatumMap()
{
Id(x => x.Id);
Map(x => x.DataValue);
References(x => x.MergeField).Cascade.All();
}
}
子マッピング:
public sealed class MergeFieldMap : ClassMap<MergeField>
{
public MergeFieldMap()
{
ReadOnly();
Id(x => x.Id);
Map(x => x.Name);
Map(x => x.MergeTag);
HasMany(x => x.Data);
}
}
新しい同一の子を持つ2つの新しい分離された親を作成し、それらを次々に保存すると、既存の子エンティティを再利用するのではなく、子の2つの「コピー」を保持します。
子クラスが存在する場合は、それを検索して2番目の親にアタッチすることで、強制的に再利用できます。
これを実現するためのより洗練された方法があるのではないかと思っていたので、本質的に同じ子エンティティを永続化しようとすると、既存のエンティティが使用され、そうでない場合は新しい子が作成されます。
どんな助けでも大歓迎です。