簡體   English   中英

流利的NHibernate對復合鍵的引用

[英]Fluent NHibernate reference to composite key

想象一下四個表: ABCD。 A表的主鍵是ID_A B表的主鍵是ID_B C表具有一個復合主鍵( ID_A,ID_B )。 D表引用所有其他三個表,並且在兩個ID_AID_B列上具有三個外鍵。 D表到B表以及對C表的引用是可選的。

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表的映射聲明為:

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表中選擇行時,我得到了ORA-00918:列的定義不明確,因為Nhibernate在生成的SQL查詢中兩次提到ID_AID_B列。

問題 :我應該如何為D表指定映射?

在這種情況下,我僅將C映射到D中,將A和B映射到C中,因此您可以通過C從D導航到A或B。

以我的經驗,在這種情況下嘗試捷徑並不能帶來任何好處,並且會引起太多問題(不值得為此煩惱)。 (也許我什至從未實現過實際起作用的“捷徑”。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM