2012-10-26 196 views
0

我有一個TABEL看起來像,多對一映射

tabel1

someID PK, 節點

tabel2

節點ID PK, 節點

,我正在努力讓馬柯在NHibernate的下面,而不是SQL

SELECT * 
FROM tabel1 
LEFT OUTER JOIN tabel2 
ON tabel1.node = tabel2.nodeid 

我曾嘗試(這是多對一的關係,因爲Tabel2可以有幾個Tabel1關係)

Tabel1映射文件

 References(x => x.Tabel2) 
      .Column("nodeID") 
      .Not.LazyLoad(); 

Tabel2映射文件

 HasMany(x => x.Tabel1) 
      .KeyColumn("node") 
      .Not.LazyLoad(); 

我不明白爲什麼這不起作用!

回答

1

.Column("nodeID")必須是.Column("node"),因爲它是在表1指向ID(默認)表2

+0

的這聽起來很合理,但它仍然dosent工作列。這讓我頭痛:)「無效的列名'node_id'。\ r \ n無效的列名'Node_id'。」} –

+0

你確定它是你發佈的HasMany映射嗎?錯誤聽起來更像是如果沒有指定默認的KeyColumn產生 – Firo

+0

我結束upp與您的解決方案,現在它的工作,可能改變了別的東西.. 參考文獻(x => x.Tabel2) .Column(「DossierNumber」 ); 和 HasMany(x => x.Tabel1) .Not.LazyLoad(); –