我想使用自然键定义两个表之间的外键关系...默认情况下,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
答案 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>