1

I'm quite new to NHibernate and starting to find my way around.

I have a domain model that is somewhat like a tree.

Funds have Periods have Selections have Audits
Now I would like to get all Audits for a specific Fund

Would look like this if I made it in SQL

SELECT A.*
FROM Audit A
JOIN Selection S ON A.fkSelectionID = S.pkID
JOIN Period P ON S.fkPeriodID = P.pkID
JOIN Fund F ON P.fkFundID = F.pkID
WHERE F.pkID = 1

All input appreciated!

4

3 に答える 3

1
session.CreateCriteria ( typeof(Audit) )
  .CreateCriteria("Selection")
  .CreateCriteria("Period")
  .CreateCriteria("Fund")
  .Add(Restrinction.IdEq(fundId))
于 2008-10-18T00:44:03.040 に答える
1

これを試して

select elements(s.Audits)
from Fund as f inner join Period as p inner join Selection as s  
where f = myFundInstance  
于 2008-10-02T15:21:51.070 に答える
0

LINQを使用しています...。

(Fund.Periodsのvar pから、fundPeriodSelections = p.Selections from var selection in FundPeriodSelections select selection.Audit).ToList()

...しかし、それは、多対多/一対多の関係が双方向であることに依存します。また、Period / Fundテーブルの間にマッピングテーブル/クラスが必要になるかもしれないと思っていましたが、すでに検討していると思います。

上記のLINQステートマネットが機能することを願っています...それはそれらのmentioendプロパティに依存しますが、コードを実際にクリーンアップしたのは、プロジェクトで使用したアプラオックです。

于 2008-10-28T13:35:39.257 に答える