我對NHibernate很陌生,開始尋找解決方法。NHibernate查詢問題
我有一個有點像樹的域模型。
基金已經時期有選擇有審計
現在我想獲得的所有審計特定基金
應該是這樣的,如果我在SQL
SELECT A.使它*
FROM審計
JOIN選擇S ON A.fkSelectionID = S.pkID
JOIN週期P ON S.fkPeriodID = P.pkID
JOIN基金F於P.fkFundID = F.pkID
其中F.pkID = 1
所有輸入讚賞!
我對NHibernate很陌生,開始尋找解決方法。NHibernate查詢問題
我有一個有點像樹的域模型。
基金已經時期有選擇有審計
現在我想獲得的所有審計特定基金
應該是這樣的,如果我在SQL
SELECT A.使它*
FROM審計
JOIN選擇S ON A.fkSelectionID = S.pkID
JOIN週期P ON S.fkPeriodID = P.pkID
JOIN基金F於P.fkFundID = F.pkID
其中F.pkID = 1
所有輸入讚賞!
嘗試此
select elements(s.Audits)
from Fund as f inner join Period as p inner join Selection as s
where f = myFundInstance
session.CreateCriteria (typeof(Audit))
.CreateCriteria("Selection")
.CreateCriteria("Period")
.CreateCriteria("Fund")
.Add(Restrinction.IdEq(fundId))
使用LINQ ....
(從Fund.Periods 讓fundPeriodSelections =從變種選擇p.Selections 在fundPeriodSelections 選擇選擇變種p .Audit).ToList()
...但它取決於那些多對多/一對多關係2種方法。另外,我認爲你可能需要在週期/基金錶中的映射表/類,但我想你已經考慮過了。
希望上面的LINQ statemanet能夠工作......它依賴於那些mentioend屬性,但它是我們在項目中使用的真正清理代碼的apraoch。
你錯過了加入期間...基金和選擇之間沒有直接關係 – 2008-10-05 14:33:13