两个自然键列之间的nhibernate外键关系

两个自然键列之间的nhibernate外键关系,nhibernate,fluent-nhibernate,fluent-interface,Nhibernate,Fluent Nhibernate,Fluent Interface,我想使用自然键定义两个表之间的外键关系。。。默认情况下,nhibernate将另一列视为主键 Class A{ public virtual int id {get; set;} public virtual int username {get; set;} } Class B{ public virtual int id {get; set;} public virtual int username {get; set;} } 我想从类A(列:用户名)上的类B(列:

我想使用自然键定义两个表之间的外键关系。。。默认情况下,nhibernate将另一列视为主键

Class A{
   public virtual int id {get; set;}
   public virtual int username {get; set;}
}

Class B{
   public virtual int id {get; set;}
   public virtual int username {get; set;}
}
我想从类A(列:用户名)上的类B(列:用户名)定义外键关系

ManyToOne(x=>x.ClassA,map=>{map.Column(“用户名”);};
Nhibenate是根据用户名到id而不是用户名到用户名创建的。我如何才能实现这一点


谢谢,mayur

请查看链接:

您需要在key部分使用property ref标记,并指定列的名称,该名称在其他表中是唯一的

<bag name=”Inventory” table=”INVENTORY” lazy=”true”>
 <key column=”ID” property-ref=”OID” />
 <one-to-many class=”GuitarStore.Common.Inventory” />
 </bag>

<bag name=”Inventory” table=”INVENTORY” lazy=”true”>
 <key column=”ID” property-ref=”OID” />
 <one-to-many class=”GuitarStore.Common.Inventory” />
 </bag>