我们有两个模式,一个数据库,我们只能更改一个模式。
我们这样做的原因是我们有一对一的映射,即我们需要在Club表中添加额外的字段。所以我们已经从我们无法改变的模式中创建了一个表。
我们只想插入子表,因为基表已经存在一条记录,但是我们需要在我们的表中进行名为OurClub的初始插入
我们需要具有系统中其他数据链接的父表TheyClub,通过使用它我们不需要重新映射已经预先映射过的实体。
public class OurClub : TheirClub
{
public virtual int ClubId { get; set; }
public virtual int ClubName { get; set; }
}
public class TheirClub //The schema we cant change
{
public virtual int ClubId { get; set; }
public virtual List<string> Contacts { get; set; }
}
每当试图插入OurClub时,它也会尝试插入他们的俱乐部。我们不想要这种行为。
对此有何建议?
答案 0 :(得分:0)
public class OurClub
{
public virtual int Id { get; set; }
public virtual TheirClub OldClub { get; set; }
// Additional Properties here
// Use Properties like this to have the same References as TheirClub
public virtual OtherEntity Other
{
get { return OldClub.Other; }
set { OldClub.Other = value; }
}
}
public class OurClubMap : ClassMap<OurClub>
{
public OurClubMap()
{
Id(x => x.Id).GeneratedBy.Foreign("OldClub"); // inherits the id of the original
// or
Id(x => x.Id).GeneratedBy.HiLow("100"); // has its own id
References(x => x.OldClub);
}
}