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

时间:2013-03-15 09:44:50

标签: 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类(col:username)上定义B类(col:username)的外键关系

ManyToOne<ClassA>( x=> x.ClassA, map => { map.Column("username"); };

Nhibenate正在用户名创建id而不是用户名用户名..我怎么能实现这个目标?

谢谢,mayur

1 个答案:

答案 0 :(得分:1)

请查看链接:NHibernate - Mapping a String Foreign Key

您需要在关键部分使用property-ref标记,并指定在其他表中唯一的列名称。

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