我有这个SQL代码:
select AVG(passing.Duration), passing.pId, p.name, zn.title
from passing inner join zn on passing.zId = zn.zId
inner join p on passing.pId = p.pId
group by passing.pId, zn.title, p.name
我想用linq格式编写,我写的如下,但我不知道如何使用avergae函数进行传递.Duration,它不存在p.Duration的平均函数!< / p>
var pass = from p in db.passings
join z in db.zns on p.zId equals z.zId
join pr in db.ps on p.pId equals pr.pId
select new {p.Duration, p.pId, pr.name, z.title};
答案 0 :(得分:0)
试试这个:
var pass = from p in db.passings
join z in db.zns on p.zId equals z.zId
join pr in db.ps on p.pId equals pr.pId
select new {p.Duration, p.pId, pr.name, z.title} into temp
from t in temp
group t by new{t.pId, t.name, t.title} into gr
select new{gr.Key.pId,
gr.Key.name,
gr.Key.title,
duration = gr.Average(c=>c.Duration)};