Fluent NHibernate 对复合键的引用

Fluent NHibernate reference to composite key

假设有四个 table:ABCDAtable的主键是ID_ABtable的主键是ID_BC table 有复合主键 (ID_A,ID_B)。 D table 引用所有其他三个 table 并且在两个 ID_AID_B 列。从 D table 到 BC table 的引用是可选。

A             B             C             D
-------       -------       -------       -------
ID_A          ID_B          (ID_A,ID_B)   
     <--------------------- ID_A
                  <-------- ID_B          
     <----------------------------------- ID_A
                  < - - - - - - - - - - - ID_B
                                 < - - - -(ID_A,ID_B)

我将 D table 的映射声明为:

mapping.References(e => e.A).Column("ID_A");
mapping.References(e => e.B).Column("ID_B");
mapping.References(e => e.C).Columns("ID_A", "ID_B");

问题:尝试从 D table select 行时,我得到了 ORA-00918: 列定义不明确 因为 Nhibernate 两次提到 ID_AID_B 列在生成的 SQL 查询中。

问题:我应该如何指定 D table 的映射?

在这种情况下,我只是将C映射到D中,A和B映射到C中,因此您可以从D导航到A或通过C导航到B。

根据我的经验,在这种情况下尝试走捷径没有任何好处,而且会导致太多问题(不值得麻烦)。 (也许我什至还没有实现实际功能"shortcut"。)