NHibernate QueryOver当量

NHibernate QueryOver当量,nhibernate,queryover,Nhibernate,Queryover,如果能为下面提到的SQL编写NHibernate QueryOver等价物,我将不胜感激: select sum(s.StudentCount),sum(w.TotalEarningsAmount), avg(w.TotalEarningsAmount),count(w.TotalEarningsAmount) from School s inner join s.Earnings w where s.Active = 1" w=null//别名变量 Dto-Dto=null//制作一个dt

如果能为下面提到的SQL编写NHibernate QueryOver等价物,我将不胜感激:

select sum(s.StudentCount),sum(w.TotalEarningsAmount),
avg(w.TotalEarningsAmount),count(w.TotalEarningsAmount) 
from School s inner join s.Earnings w where s.Active = 1"
w=null//别名变量
Dto-Dto=null//制作一个dto对象
var dtoList=Session.QueryOver()
.JoinAlias(x=>x.收益,()=>w)
.其中(x=>x.isActive)
.SelectList(list=>list
.SelectSum(x=>x.StudentCount)。带别名(()=>dto.StudentCountSum)
.SelectSum(()=>w.TotalEarningsAmount)。带别名(()=>dto.TotalEarningsAmountSum)
.选择Avg(()=>w.TotalEarningsAmount)。使用别名(()=>dto.TotalEarningsAmountAvg)
.选择Count(()=>w.TotalEarningsAmount)。使用别名(()=>dto.TotalEarningsAmountCount))
.TransformUsing(transforms.AlaisToBean())
.List();

Owww投影,令人讨厌。我得坐下来想一想这个问题。
Earning w = null; //alias variable
Dto dto = null; //make a dto object

var dtoList = Session.QueryOver<School>()
    .JoinAlias(x => x.Earnings, () => w)
    .Where(x => x.isActive)
    .SelectList(list => list
        .SelectSum(x => x.StudentCount).WithAlias(() => dto.StudentCountSum)
        .SelectSum(() => w.TotalEarningsAmount).WithAlias(() => dto.TotalEarningsAmountSum)
        .SelectAvg(() => w.TotalEarningsAmount).WithAlias(() => dto.TotalEarningsAmountAvg)
        .SelectCount(() => w.TotalEarningsAmount).WithAlias(() => dto.TotalEarningsAmountCount))
    .TransformUsing(Transformers.AlaisToBean<Dto>())
    .List<Dto>();