**Table Order**
Id (PK)
NonUniqueId
**Table OrderLine**
Id (PK)
OrderNonUniqueId
Text
我有一个遗留数据库,其中OrderLine通过非主键引用Order。订单行可能属于许多订单。
如何在HasMany中映射?
**OrderMap**
HasMany(x => x.OrderLines)
.KeyColumn("OrderNonUniqueId")
(因为它使用主键Order.Id所以不起作用)
答案 0 :(得分:16)
您是否尝试过使用PropertyRef
?
public OrderMap()
{
...
Map(x => x.NonUniqueId);
HasMany<OrderLine>(x => x.Lines)
.KeyColumn("OrderNonUniqueId")
.PropertyRef("NonUniqueId");
...
}
似乎额外Map
是必要的,否则流利的nhibernate抱怨。如果在hbm.xml文件中映射一对多,则不需要NonUniqueId
的额外属性映射。