0

我想使用自然键定义两个表之间的外键关系...默认情况下,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:用户名)上定义 B 类(col:用户名)的外键关系

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

Nhibenate 是在用户名到 id 上创建它,而不是在用户名到用户名上创建它。我怎么能做到这一点?

谢谢,市长

4

1 回答 1

1

请查看链接:NHibernate - 映射字符串外键

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

<bag name=”Inventory” table=”INVENTORY” lazy=”true”&gt;
 <key column=”ID” property-ref=”OID” />
 <one-to-many class=”GuitarStore.Common.Inventory” />
 </bag>
于 2013-03-17T09:17:19.800 回答