[英]Fluent NHibernate custom types with composite key that is used as reference to another table
[英]Fluent NHibernate reference to composite key
想象一下四個表: A , B , C和D。 A表的主鍵是ID_A 。 B表的主鍵是ID_B 。 C表具有一個復合主鍵( ID_A,ID_B )。 D表引用所有其他三個表,並且在兩個ID_A和ID_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_A和ID_B列。
問題 :我應該如何為D表指定映射?
在這種情況下,我僅將C映射到D中,將A和B映射到C中,因此您可以通過C從D導航到A或B。
以我的經驗,在這種情況下嘗試捷徑並不能帶來任何好處,並且會引起太多問題(不值得為此煩惱)。 (也許我什至從未實現過實際起作用的“捷徑”。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.