Я пытаюсь построить следующую ассоциацию в NHibernate (базовый класс Entity содержит свойство Id, оно и атрибуты взяты из S # arp Architecture)
public class Terminal : Entity {
public virtual string Name { get; set; }
}
public class Order : Entity {
[NotNull]
public virtual Terminal Terminal { get; set; }
}
Где данные о заказе хранятся в ORDERS, а данные о терминалах - в таблицах TERMINALS. Проблема в том, что нет прямой связи между двумя таблицами. Если бы у меня был идентификатор для ORDERS.ORDER_ID, я бы выбрал соответствующую строку TERMINALS со следующим SQL.
select t.*
from ORDERS o
inner join cust_prod cp on (o.CUST_PROD_ID = cp.CUST_PROD_ID)
inner join customer_terminal ct on (cp.CUSTOMER_TERMINAL_ID = ct.CUSTOMER_TERMINAL_ID)
inner join terminal t on (ct.TERMINAL_ID = t.TERMINAL_ID)
where o.ORDER_ID = :p_order_id
Как мне отобразить это в NHibernate? Предпочтительно, как мне отобразить это в Fluent NHibernate, но я думаю, что я мог бы понять это из XML. Кроме того, учитывая, что унаследованная база данных, с которой я работаю, переполнена подобными цепочками, есть ли какие-либо рекомендации по передовому опыту?