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

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

Mam starszą bazę danych, w której znajdują się odwołania do OrderLine. Zamów przez klucz podstawowy. Linia zamówienia może należeć do wielu zamówień.Fluent Nhibernate HasMany na kluczu niebędącym kluczem podstawowym

Jak można to odwzorować na HasMany?

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

(nie będzie działać, ponieważ używa Order.Id klucza podstawowego)

Odpowiedz

15

próbowałeś za pomocą PropertyRef?

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

Wydaje się, że konieczne jest dodatkowo Map inaczej Fluent NHibernate narzeka. Jeśli zamapujesz jeden do wielu w pliku hbm.xml, dodatkowe odwzorowanie właściwości dla NonUniqueId nie jest wymagane.

Powiązane problemy