2013-12-11 138 views
1

有無論如何使用NHibernate(QueryOver,如果可能的話)做一個選擇語句連接?NHibernate的QueryOver加入到子查詢

這是我希望能產生

SELECT r.MaxReading, r.MeterId, m.PreviousHours 
FROM 
Meters m 
LEFT JOIN 
    (SELECT Max(mr.ReadingHours) as MaxReading, mr.AssetMeterId 
    FROM MeterReadings mr 
    WHERE mr.MeterId IN(1,2) 
    GROUP BY mr.MeterId) r 
ON m.Id=r.MeterId 

我發現this後的SQL,但它看起來像答案是建立一個不同的查詢。這讓我覺得這可能是不可能的。

我已經想出瞭如何構建子查詢片,所以任何答案都可以在它的位置使用一個簡單的查詢作爲示例。謝謝!

+0

請發佈您的類定義和映射的相關部分,因爲可能的查詢將高度依賴於它。 什麼是你的子查詢中的'mr.AssetMeterId'?它似乎不出現在組中,並且似乎在外部查詢中被稱爲「r.MeterId」 – jbl

回答

0

據我所知,在NHibernate中加入子查詢是不可能的,因爲所有連接必須來自對象模型中的關係。