NHibernate查询问题

时间:2008-10-02 15:08:44

标签: nhibernate

我对NHibernate很新,并开始寻找解决方法。

我有一个有点像树的域模型。

资金有期间有选择有审计
现在我想获得特定基金的所有审计

如果我在SQL

中创建它,会是这样的

SELECT A. *
来自审计A
JOIN Selection S ON A.fkSelectionID = S.pkID
JOIN Period P ON S.fkPeriodID = P.pkID
加入基金F ON P.fkFundID = F.pkID
在哪里F.pkID = 1

所有输入都赞赏!

3 个答案:

答案 0 :(得分:1)

试试这个

select elements(s.Audits)
from Fund as f inner join Period as p inner join Selection as s  
where f = myFundInstance  

答案 1 :(得分:1)

session.CreateCriteria ( typeof(Audit) )
  .CreateCriteria("Selection")
  .CreateCriteria("Period")
  .CreateCriteria("Fund")
  .Add(Restrinction.IdEq(fundId))

答案 2 :(得分:0)

使用LINQ ....

(来自Fund.Periods的var p 让fundPeriodSelections = p.Selections 来自fundPeriodSelections中的var选择 选择selection.Audit).ToList()

......但它确实取决于那些多对多/一对多关系是双向的。另外,我原本以为你可能需要在期间/基金表中使用映射表/类..但我想你已经考虑过了。

希望上面的LINQ状态网工作...它取决于那些mentioend属性,但它是我们在我们的项目中使用的apraoch,它真正清理了代码。