我有一個包含子項的集合父對象:NHibernate的QueryOver總結集合中的字段的值
class Parent {
int Id {get;set;}
....
IList<Child> Children {get;set;}
}
class Child {
int Id {get;set;}
int Value {get;set;}
...
Parent Parent {get;set;}
}
蒙山FluentNHibernate的映射是
ParentMap:
Id(x => x.Id, "id").GeneratedBy.Assigned();
...
HasMany<Child>(x => x.Children).AsBag().KeyColumn("parentid").Inverse()
.Fetch.Join().Cascade.AllDeleteOrphan();
ChildMap:
Id(x => x.Id).GeneratedBy.Assigned();
....
Map(x => x.Value, "value");
References<Parent>(x => x.Parent, "parentid").NotFound.Ignore();
我要地圖蒙山NHibernate的SQL查詢是這樣的:
select p.id, sum(c.value)
from parent p, child c
where p.id = c.parentid
是否有可能把這種查詢蒙山QueryOver?
感謝
看到在 '預測' 使用 '平均' 的例子部分在這裏。你可以爲'sum'做同樣的事情。 http://nhforge.org/blogs/nhibernate/archive/2009/12/17/queryover-in-nh-3-0.aspx – 2012-02-22 14:53:47
Jhonny,謝謝你的回覆。我的問題與該例中解釋的情況不同。我想獲得「價值」屬性的總和;我想是這樣的: IList的選擇= session.QueryOver() 。選擇(Projections.ProjectionList() 。新增(Projections.Property (C => c.Id)) 。新增(Projections.Sum (c => c.Value))) .List