1

我们有两个模式一个数据库,我们只能更改一个模式。

我们这样做的原因是我们有一对一的映射,即我们需要向俱乐部表添加额外的字段。因此,我们从无法更改的模式中对表进行了子类化。

我们只想插入到子表中,因为基表已经存在一条记录,但是我们需要在名为 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 时,它也会尝试插入TheyClub。我们不想要这种行为。

有什么建议可以解决这个问题吗?

4

1 回答 1

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);
    }
}
于 2011-11-23T16:39:03.857 回答