12
**Table Order**
Id (PK)
NonUniqueId

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

我有一个遗留数据库,其中 OrderLine 通过非主键引用 Order。一个订单行可能属于多个订单。

这如何映射到 HasMany?

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

(因为它使用主键 Order.Id,所以不起作用)

4

1 回答 1

17

你试过使用PropertyRef吗?

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

似乎额外的东西Map是必要的,否则流利的 nhibernate 抱怨。如果您在 hbm.xml 文件中映射一对多,NonUniqueId则不需要额外的属性映射。

于 2013-05-08T13:30:53.673 回答