流利的Nhibernate HasMany非主键

时间:2013-05-08 09:54:59

标签: nhibernate fluent

**Table Order**
Id (PK)
NonUniqueId

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

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

如何在HasMany中映射?

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

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

1 个答案:

答案 0 :(得分:16)

您是否尝试过使用PropertyRef

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

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