插入到Nhibernate子类中

插入到Nhibernate子类中,nhibernate,fluent-nhibernate,fluent-nhibernate-mapping,Nhibernate,Fluent Nhibernate,Fluent Nhibernate Mapping,我们有两个模式一个数据库,我们只能更改一个模式 我们这样做的原因是我们有一对一的映射,即我们需要向俱乐部表添加额外的字段。因此,我们从不能更改的模式中对一个表进行了子类化 我们只想插入到子表中,因为基表已经存在一条记录,但我们需要在名为OurClub的表中进行初始插入 我们需要父表TheirClub,它与系统中的其他数据有链接,通过使用它,我们不需要重新映射已经预先映射的实体 public class OurClub : TheirClub { public virtual int Cl

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

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

我们只想插入到子表中,因为基表已经存在一条记录,但我们需要在名为OurClub的表中进行初始插入

我们需要父表TheirClub,它与系统中的其他数据有链接,通过使用它,我们不需要重新映射已经预先映射的实体

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; }

}
公共课我们的俱乐部:他们的俱乐部
{
公共虚拟整数ClubId{get;set;}
公共虚拟int ClubName{get;set;}
}
public class TheirClub//我们无法更改的架构
{
公共虚拟整数ClubId{get;set;}
公共虚拟列表联系人{get;set;}
}
无论何时尝试加入我们的俱乐部,它也会尝试加入他们的俱乐部。我们不想要这种行为

对此有什么建议吗?

我们俱乐部的公共课
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);
    }
}
{ 公共虚拟整数Id{get;set;} 公共虚拟俱乐部旧俱乐部{get;set;} //这里的其他属性 //使用类似于这样的属性可以使其引用与其RCLUB相同 公共虚拟其他实体其他 { 获取{return OldClub.Other;} 设置{OldClub.Other=value;} } } 公共类OurClubMap:ClassMap { 公共俱乐部地图() { Id(x=>x.Id).GeneratedBy.Foreign(“OldClub”);//继承原始文件的Id //或 Id(x=>x.Id).GeneratedBy.HiLow(“100”);//有自己的Id 参考文献(x=>x.OldClub); } }
您必须使用子类吗?你能不能让我们的俱乐部完全分开,使用一个通用的抽象基类或使用一个接口?是的,必须子类,因为他们是基类…并且已经映射了大多数属性