NHibernate查询问题
时间:2020-03-06 15:01:55 来源:igfitidea点击:
我对NHibernate还是很陌生,并开始找到解决方法。
我有一个有点像一棵树的域模型。
资金有期有选择有审计
现在,我想获得一个特定基金的所有审计
如果我用SQL编写,它将看起来像这样
选择一个。*
从审计A
加入选择S ON A.fkSelectionID = S.pkID
加入期间P ON S.fkPeriodID = P.pkID
在P.fkFundID = F.pkID上加入基金F
在哪里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中的var p
让fundPeriodSelections = p.Selections
从fundPeriodSelections中的var选择中
选择selection.Audit).ToList()
...但是这确实取决于2对多/多/一对多关系。另外,我还以为我们可能在"期间/资金"表之间需要一个映射表/类。.但是我想我们已经考虑过了。
希望上面的LINQ statemanet能够起作用...它取决于那些mentioend属性,但这是我们在项目中使用的apraoch,它确实清理了代码。