1
我正在學習Fluent nHibernate的過程。我在構建與我在網上找到的經典示例不太一樣的查詢時遇到了問題。通常,我發現這個例子:Fluent Nhibernate QueryOver並加入
IQueryOver<Cat,Cat> catQuery =
session.QueryOver<Cat>(() => catAlias)
.JoinAlias(() => catAlias.Kittens,() => kittenAlias)
.Where(() => catAlias.Age > 5)
.And(() => kittenAlias.Name == "Tiddles");
所以,從我在這個例子中理解上的小貓接合後正在返回一個貓的對象,然後使用小貓的名字和貓的年齡過濾。由於Cat對象有一個名爲Kittens的屬性,因此連接起作用。
的什麼,我試圖做的是這樣一個例子:
Forest f = null;
Tree t = null;
ForestsFound = session.QueryOver<Forest>(() => f)
.JoinAlias(() => t.Forest,() => f)
.Where(() => t.NumberOfTrees > 1000)
.List<Forest>()
.ToList<Forest>();
一個森林本質上是一個查找表,它是有一個鏈接到該樹是,但我什麼森林樹想要返回一個清晰的森林列表。因此,在常規的SQL它會是什麼樣子:
select f.*
from Forest f
inner join Tree t
on t.Forest_id = f.ID
where t.NumberOfTrees > 1000
剛一說明,看起來像它的不可能按照我嘗試的方式這樣做,您必須調整映射以包含與其他類的HasMany關係 –
您可以在沒有HasMany關係的情況下執行此操作,但需要使用子查詢 –