我試圖重現此SQL查詢中NH:NHibernate的QueryOver上多列加入
select vehicle.Id, price.Price
from vhc.Vehicle vehicle
left outer join vhc.VehiclePrice price on vehicle.Id = price.VehicleId
and price.VehiclePriceTypeId = 1
where price.Id is null or price.VehiclePriceTypeId = 1
order by price.Price
的重要組成部分,是第二個連接標準。我希望看到所有車輛,不管它們是否有價格,但是如果它們有任何價格,我想選擇類型1的價格。移除第二個加入標準意味着它不包括所有隻有類型2價格的車輛,3等等,那不好。
途徑我已經試過:
添加全局過濾器VehiclePrice對象過濾僅 VehiclePriceType = 1,但把它放在何處,而不是在加入,所以 沒有運氣那裏。
爲類型1的價格添加子查詢,但是,它再次將其應用於Where,而不是Join。
其他連接類型 - 完整,正確...在這裏似乎沒有意義。
這是一個常見的問題,只是還沒有找到解決方案。有什麼想法嗎?
謝謝。將保持這個我的雷達。爲此使用WITH子句提供的HQL。 QueryOver API中是否有等價物? http://nhforge.org/blogs/nhibernate/archive/2009/05/17/nhibernate-2-1-0-hql-with-clause.aspx – Thomas
沒有我知道的 – Firo