【发布时间】:2012-06-08 17:40:10
【问题描述】:
我想知道是否有人可以提供帮助。我有一个父母/孩子关系,其中父母与孩子是一对一的关系,但孩子可以有很多父母。
父映射:
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);
}
}
如果我用新的相同子级创建两个分离的新父级,然后一个接一个地保存它们,我将保留两个子级的“副本”,而不是重用现有的子级实体。
如果子类存在,我可以通过查找它并将其附加到第二个父类来强制重用它。
我想知道是否有更优雅的方法来实现这一点,这样如果我尝试保留本质上相同的子实体,它会使用现有实体,否则会创建一个新子实体。
任何帮助将不胜感激。
【问题讨论】:
标签: nhibernate fluent-nhibernate