2013-05-08 118 views
10
**Table Order** 
Id (PK) 
NonUniqueId 

**Table OrderLine** 
Id (PK) 
OrderNonUniqueId 
Text 

我有一個遺留數據庫,其中OrderLine通過非主鍵引用Order。訂單行可能屬於許多訂單。流利Nhibernate HasMany非主鍵

這怎麼可以映射到HasMany?

**OrderMap** 
HasMany(x => x.OrderLines) 
     .KeyColumn("OrderNonUniqueId") 

(將無法工作,因爲它使用的主鍵Order.Id)

回答

15

您是否嘗試過使用PropertyRef

public OrderMap() 
{ 
    ... 
    Map(x => x.NonUniqueId); 
    HasMany<OrderLine>(x => x.Lines) 
    .KeyColumn("OrderNonUniqueId") 
    .PropertyRef("NonUniqueId"); 
    ... 
} 

似乎多餘Map是必要的,否則功能NHibernate抱怨。如果將一對多映射到hbm.xml文件中,則不需要NonUniqueId的額外屬性映射。