插入到Nhibernate子类中
我们有两个模式一个数据库,我们只能更改一个模式 我们这样做的原因是我们有一对一的映射,即我们需要向俱乐部表添加额外的字段。因此,我们从不能更改的模式中对一个表进行了子类化 我们只想插入到子表中,因为基表已经存在一条记录,但我们需要在名为OurClub的表中进行初始插入 我们需要父表TheirClub,它与系统中的其他数据有链接,通过使用它,我们不需要重新映射已经预先映射的实体插入到Nhibernate子类中,nhibernate,fluent-nhibernate,fluent-nhibernate-mapping,Nhibernate,Fluent Nhibernate,Fluent Nhibernate Mapping,我们有两个模式一个数据库,我们只能更改一个模式 我们这样做的原因是我们有一对一的映射,即我们需要向俱乐部表添加额外的字段。因此,我们从不能更改的模式中对一个表进行了子类化 我们只想插入到子表中,因为基表已经存在一条记录,但我们需要在名为OurClub的表中进行初始插入 我们需要父表TheirClub,它与系统中的其他数据有链接,通过使用它,我们不需要重新映射已经预先映射的实体 public class OurClub : TheirClub { public virtual int Cl
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);
}
}
您必须使用子类吗?你能不能让我们的俱乐部完全分开,使用一个通用的抽象基类或使用一个接口?是的,必须子类,因为他们是基类…并且已经映射了大多数属性